js数据结构学习
文章平均质量分 61
进阶的菜熊
坚持学习,总有回报
展开
-
js数据结构学习---树
9.树结构9.1树的特点树是n(n>=0)个节点构成的有限集合。它具有以下特点: 每个节点有零个或多个子节点 没有父节点的节点称为根节点 每一个非根节点有且只有一个父节点 除了根节点外,每个子节点可以分为多个不相交的子树 具有以下性质: 树中结点数等于所有结点的度数之和加1 高度为h的m次树最多有m^h-1/m-1个结点 度为m的树中第i层上最多有m^(i-1)个结点(i>=1) 9.2树的术语 节点的度:节点的原创 2021-11-28 16:30:46 · 400 阅读 · 0 评论 -
js数据结构学习---哈希表
8.哈希表8.1哈希表概念 哈希化:将大数字转化成数组范围内下标的过程 哈希函数:将单词转成大数字,再对大数字进行哈希化函数 哈希表:又称散列表。其基本思路是,设要存储的元素个数为n,设置一个长度为m(m>=n)的连续内存单元,以每个元素的关键字k为自变量,通过哈希函数把k映射为内存单元的地址(下标),并把该元素存储在这个内存单元中,如此构造的存储结构称为哈希表 8.2哈希表的特点 基于数组实现,速度比树快,编码比树容易 可以提供非常快速的插入-删除-原创 2021-11-24 19:48:13 · 1413 阅读 · 0 评论 -
js数据结构学习---字典
7.字典7.1字典的特点 字典的主要特点是一一对应关系,既一个键对应一个值,与集合类似 字典中的key是不可以重复,而value可以重复,并且字典中的key是无序的 字典既映射,不同的编程语言对其有不同的称呼如python中是dict,java中是HashMap&TreeMap等 7.2字典的常见操作 set(key,value):向字典中添加新元素 remove(key):通过键值从字典中移除键值对应的数据值 has(key):字典中是否原创 2021-11-23 13:38:50 · 1253 阅读 · 0 评论 -
js数据结构学习---集合
6.集合常见的实现方式是哈希表(后续学习),在这主要以封装集合类来实现。在2015年6月发布的es6中已经 包含了set类,所以在这里通过手动封装让我们了解set类内部实现机制。注意:本内容主要探讨集合有哪些方法,其兼容问题是不包含在本节所要讲的内容中6.1集合特点 是一组无序的,不重复的元素构成 意味着不能通过下标值进行访问,相同的对象在集合中是不能重复的,只存在一份 6.2集合的常见操作 add(value):向集合添加一个新的项 remove(value原创 2021-11-22 15:30:13 · 965 阅读 · 0 评论 -
js数据结构学习--双向链表
5.双向链表双向链表优点 即可以从头遍历到尾,也可以从尾遍历到头 一个节点既有向前连接的引用,也有一个向后连接的引用 双向链表缺点 每次插入或删除某个节点时,需要处理四个引用 相对于单向链表,所占内存空间更大 5.1双向链表的特点 使用一个head指向头部,一个tail指向尾部 每个节点都由三部分组成:前一个节点指针(prev)/保存的元素(item)/后一个节点的指针(next) 双向链表第一个节点的prev为null,最后的节点原创 2021-11-21 13:00:00 · 177 阅读 · 0 评论 -
js数据结构学习--链表
4.链表 内存空间不连续,能实现灵活的内存动态管理 链表创建时不需确定大小,大小可随需要而扩充 在插入和删除数据时,时间复杂度可达到O(1) 4.1链表的火车结构链表类似于火车,有一个火车头,火车头连接一个节点(车厢),节点(车厢)内有乘客(数据),并且此节点连接下一节点,以此类推4.2链表的常见操作 append(element):向列表尾部添加一个新的项 insert(position,element):向列表的特定位置插入一个新的项 ge原创 2021-11-20 13:30:00 · 212 阅读 · 0 评论 -
js数据结构学习---优先队列
3.优先队列在插入一个元素时会考虑数据的优先集3.1队列需考虑的问题元素既包含数据又包含优先级在插入时,会根据优先级进行插入3.队列操作的实践function PriorityQueue () { //在PriorityQueue重新创建了一个类:可以理解成内部类,也可以理解为结构体 function QueueElement (element, priority) { this.element = element this.prio原创 2021-11-19 12:30:00 · 210 阅读 · 0 评论 -
js数据结构学习---队列
2.队列受限的线性表,先进先出 表的前端进行删除操作 表的后端进行插入操作 2.1队列的常见操作 enqueue(element):向队列尾部添加一个(或多个)新的项 dequeue():移除队列的第一(即排在队列最前面的)项,并返回被移除的元素 front():返回队列中第一个元素--最先被添加,也将是最先被移除的元素。队列中不做任何变动(不移除元素,只返回元素信息与stack类的peek方法类似) isEmpty():如果队列中不包含任何元素,原创 2021-11-18 08:51:47 · 195 阅读 · 0 评论 -
js数据结构学习--栈
1.栈 后进先出 函数是进行栈中 1.1栈的实现方式 数组 链表 1.2栈的常见操作 push(element):添加一个新元素到栈顶位置 pop():移除栈顶的元素,同时返回被移除的元素 peek():返回栈顶的元素,不对栈做任何修改 isEmpty():如果栈里没有任何元素就返回true,否则返回false size()返回栈里的元素个数,这个方法和数组的length属性类似 toString():将栈结构的原创 2021-11-16 14:13:12 · 441 阅读 · 0 评论