《学习JavaScript数据结构与算法》笔记---红黑树 什么是红黑树 1.为了解决二叉搜索树出现非平衡树的情况而出现的优化方案;2.当插入一个节点使树不平衡时,通过一些规则和一些处理方式来让树保持平衡;这个平衡后的树叫做红黑树 为什么需要红黑树?1.假如现在要向一颗BST插入10 9 8 7 6 5 4 3 2 1这样一组数,最后的结果就是每个数依次出现在上一个节点的左子树的情况,这样就相当于一个链表,体现不出我们使用树结构的优势,所以需要一些措施让 2019-09-22 技术笔记 JavaScript 数据结构
《学习JavaScript数据结构与算法》笔记---树 本文源码 这里什么是树 1.一种非线性结构,由n(n>=1)个有限节点组成的有层次关系的集合2.如下图:3.HTML的所有dom节点其实就是一棵dom树,如图 2019-09-16 技术笔记 JavaScript 数据结构
《学习JavaScript数据结构与算法》笔记---哈希表 本文源码 这里理论特点 1.基于数组创建的一种数据结构2.存储元素时,对每一个元素通过哈希函数,进行哈希化后存储3.存储后的这个数组就叫做哈希表(HashTable,也有叫散列表的) 和数组对比 优点 比数组更快的查找速度(因为删除,修改基于查找所以效率也提高) 缺点 key值不可以重复哈希表没有顺序,不能以一定的顺序遍历 2019-09-10 技术笔记 JavaScript 数据结构
《学习JavaScript数据结构与算法》笔记---集合 本文源码 这里概念 集合是由一组*无序**且唯一***的项组成的。 可以理解成一种特殊的数组 1.特殊在里面的元素没有顺序,不能重复 2.没有顺序意味着不能通过下标访问,不能重复意味着相同对象在集合中只存一份 和数学中的集合一样,也有并集、交集、差集、子集的概念。 2019-09-04 技术笔记 JavaScript 数据结构