![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JS数据结构
文章平均质量分 50
zcodery
我会持续记录在学习过程中的学习经历,希望大家多多支持,有什么记录不对的地方,还望纠正。
展开
-
JS 数据结构 图(Graph)
图目的事物之间的关系顶点:事物[通常用 V(Vertex)表示顶点的集合]边:两个事物间的关系[通常用 E(Edge)表示边的集合]边是顶点和顶点之间的连线边是有向的(A --> B),也可以是无向的(A – B)无权图带权图代码实现:class Graph { constructor() { this.vertexes = [] /* 顶点 */ this.edges = new Dictionary() /* 边 */ }原创 2021-05-16 12:36:51 · 536 阅读 · 0 评论 -
JS 数据结构 树及红黑树
树树二叉树的特性红黑树平衡旋转变换规则树n(n>=0)个节点构成的有限集合当 n=0 时,为空树对于任一棵非空树(n>0),具备性质树中有一个称为**根(Root)**的特殊节点,用 r 表示其余节点可分为 m(m>0)个互不相交的有限集 T1,T2…Tm,其中每个集合本身又是一棵树,称为原来树的子树(SubTree)术语部分节点的度(Degree):节点的子树个数树的度:树的所有节点中最大的度数叶节点(Leaf):度为 0 的节点(也称叶子节点)原创 2021-05-16 12:33:27 · 140 阅读 · 0 评论 -
JS 数据结构 哈希表(HashTable)
哈希表数组的特点(补充)数组进行插入时,效率较低数组进行查找操作的效率如果是基于索引进行查找效率非常高基于内容查找,效率较低数组进行删除操作,效率较低哈希表的特点哈希表通常是基于数组进行实现的优点提供非常快速的插入-删除-查找操作无论数据多少,插入和删除的效率都非常高(即 O(1)的时间级)哈希表的速度比树快,几乎瞬间可找到代码相对树简单缺点数据没有顺序,不能以一种固定的方式来遍历其中的元素哈希表的 key 是不允许重复的,不能放置相同的 key,原创 2021-05-16 12:20:00 · 899 阅读 · 0 评论 -
JS 数据结构 集合(Set)
集合集合通常是由一组无序的,不能重复的元素组成特殊的数组元素没有顺序,也不能重复不能通过下标值进行访问,不能重复意味着相同的对象在集合中只会存在一份class Set { constructor() { this.items = {} } /* 1. 添加新元素 */ add(value) { // 1. 判断是否已经存在该元素 if (this.has(value)) return false // 2. 将该元素添加到集合中原创 2021-05-16 12:05:55 · 184 阅读 · 0 评论 -
JS 数据结构 链表(LinkedList)
单项链表链表的每个元素由一个存储元素本身的节点和一个指向下一个元素的引用组成优势内存空间不是必须连续的,可以充分利用计算机的内存,实现灵活的内存动态管理;链表不必在创建时就确定大小,并且大小可以无限的延时下去;链表在插入和删除数据时,时间复杂度可以达到 O(1).相对数组效率高很多;缺点链表访问人一个位置的元素时,都需要从头开始访问(无法跳过第一个元素访问任意一个元素)无法通过下标直接访问元素,需要从头一个个访问,直到找到对应的元素/* 内部类 */class N原创 2021-05-16 11:37:33 · 81 阅读 · 0 评论 -
JS 数据结构 队列及优先级队列
队列队列代码实现部分class Queue { constructor() { this.items = [] } // 1. 队尾添加元素 enqueue(element) { this.items.push(element) } // 2. 对头删除元素 dequeue() { return this.items.shift() } // 3. 返回第一个元素 front() { return this.items[0]原创 2021-05-16 11:34:48 · 81 阅读 · 0 评论 -
Js 数据结构 栈
代码实现部分:class Stack { constructor() { /* 属性 */ this.items = [] } // 1. 将元素压入栈 push(element) { this.items.push(element) } // 2. 从栈中取出元素(栈顶) pop() { return this.items.pop() } // 3. 查看一下栈顶元素 peek() { return this.item.原创 2021-05-16 11:32:03 · 50 阅读 · 0 评论