数据结构和算法
Sue_9293
这个作者很懒,什么都没留下…
展开
-
数据结构与算法(四)之树结构(偏向JS)
数据结构(四) 说明:本文基于哔哩哔哩视频【JavaScript数据结构与算法】整理 树(tree) 概念:n(n>=0) 个节点构成的有限集合 特性:非线性,一对多。查找较快 概念术语: root:根,用 r 表示 空树:n=0 子树:subtree 节点的度 degree :子树个数 父节点,子节点,兄弟节点 节点度: 子节点的个数 树的最大度:树的深度 叶子节点:没有子节点的节点 路径和路径长度:路径包含的边为路径长度 节点层次:规定 根节点在一层,其他的是其父节点加一 树的深度:原创 2020-06-19 13:58:52 · 216 阅读 · 0 评论 -
数据结构与算法(四)之哈希结构(偏向JS)
数据结构(四) 说明:本文基于哔哩哔哩视频【JavaScript数据结构与算法】整理 哈希表(hash) 它的结构是数组,是通过一种哈希函数将 hashcode,转化成数组的下标 特性:相对于数组,优点:插入、查询和删除的操作,效率非常高;缺点:无序,不能重复,空间利用率不高; 相关概念 哈希化:将很大的数字转化成数组范围内下标的过程(取余操作); 哈希函数:将单词转化为大数字hashcode(幂的连乘相加,避免重复),大数字再进行哈希化的代码,封装在一个函数里; 优秀哈希函数的目标原创 2020-06-19 11:45:00 · 202 阅读 · 0 评论 -
数据结构与算法(三)之集合,字典(偏向JS)
数据结构(三) 说明:本文基于哔哩哔哩视频【JavaScript数据结构与算法】整理 集合(Set ) es6中包含的类)(通常由哈希表实现) ※ ※ ※ ※ 特点:无序(没有下标),不允许重复的数组(类似) 图示:来自网络 常见集合的操作 add(value):向集合添加一个新的项。 remove(value):从集合移除一个值。 has(value):如果值在集合中,返回true,否则返回false。 clear():移除集合中的所有项。 size():返回集合所原创 2020-06-19 11:01:57 · 213 阅读 · 0 评论 -
数据结构与算法(二)之单向链表和双向链表(偏向JS)
数据结构(二) 说明:本文基于哔哩哔哩视频【JavaScript数据结构与算法】整理 链表(linked List) 类似于数组(数组在有些语言叫链表) 插入删除性能高 相较于数组的优点: 内存不必要是一整块的内存空间(无序,没有下标),大小可以无限延伸 链表内的元素由 元素本身和指向下一个元素的指针【引用或者连接】组成; 相当于 火车,火车头+车厢+连接,每一节车厢和连接处相当链表中的元素 常见的操作 append(element):向列表尾部添加一个新的项 insert原创 2020-06-19 10:36:56 · 230 阅读 · 0 评论 -
数据结构与算法(一)之数组,队列,栈(偏向JS)
数据结构(一) 说明:本文基于哔哩哔哩视频【JavaScript数据结构与算法】整理 一、基本概念: 数据的组织方式 二、生活中的实例: 图书的摆放,快递分发 三、常见的数据结构 注意事项 (操作性能不同:查询速度、插入、范围查找、重复性) ※ ※※ ※ ※ 是重点,每个编程语言都提供的数据类型 JS 是API的使用者,对数据结构接触不多; 数组(Array) ※ ※ ※ ※ ※ 线性结构 查找性能较高(利用下标,有序)或者较低(基于内容)插入效率低 操作: 长度原创 2020-06-19 10:10:47 · 244 阅读 · 0 评论