数据结构
文章平均质量分 67
独鹿DT
这个作者很懒,什么都没留下…
展开
-
JavaScript数据结构(图)
JavaScript数据结构——图什么是图图的表示顶点表示边的表示图的封装创建图类图的遍历深度优先搜索代码实现广度优先搜索代码实现什么是图图用来表示顶点与顶点间的关系术语顶点:表示图中的一个结点。边:顶点与顶点间的连线。相邻顶点:一条边连接的顶点。度:一个顶点连接的边的条数。路径:路径是顶点 v1,v2…,vn 的一个连续序列。根据边的有无方向分为:无向图 和 有向图。图的表示顶点表示顶点的表示抽象成数字或者字母表示。边的表示邻接矩阵:两个顶点间的边用1表示,无边连接的两原创 2021-04-20 17:30:09 · 849 阅读 · 7 评论 -
JavaScript数据结构(字典)
JavaScript数据结构——字典字典字典常见的操作代码封装字典特点:字典存储的是键值对,主要特点是一一对应。在字典中 key 是不能重复且无序的,而 Value 可以重复。字典常见的操作set(key,value) 向字典中添加新元素。remove(key) 通过使用键值来从字典中移除键值对应的数据值。has(key) 如果某个键值存在于这个字典中,则返回 true,反之则返回 false。get(key) 通过键值查找特定的数值并返回。clear() 将这个字典中的所有元素全原创 2021-04-20 17:19:49 · 1078 阅读 · 6 评论 -
数据结构:邂逅红黑树
红黑树什么是红黑树红黑树的特性插入节点和删除结点存在的情况和变换操作情况一:根节点为NULL情况二:父节点为黑色情况三:父节点和叔叔节点为红色,祖父节点为黑色情况四: 父节点为红,叔叔节点为黑,且`N`节点为左子节点情况五:父节点为红,叔叔节点为黑,且`N`节点为右孩子节点代码展示什么是红黑树红黑树:是一种可以保持平衡二叉搜索树。一般的二叉搜索树在按照某些特定的插入节点的顺序下,会造成树不平衡的情况,进而影响搜索的效率。红黑树可以解决这一问题。红黑树的每个节点上都有存储位表示节点的颜色红黑树的特性原创 2021-04-19 21:31:32 · 747 阅读 · 6 评论 -
JavaScript数据结构(二叉搜索树)
JavaScript数据结构——二叉搜索树JavaScript数据结构(二叉搜索树)二叉搜索树二叉搜索树的封装二叉搜索树的常见操作Node节点类二叉搜索树封装类JavaScript数据结构(二叉搜索树)二叉搜索树二叉搜索树是一棵二叉树,可以为空。如果不为空,则满足以下性质:条件 1:非空左子树的所有键值小于其根节点的键值;条件 2:非空右子树的所有键值大于其根节点的键值;条件 3:左、右子树本身也都是二叉搜索树;二叉搜索树的封装二叉搜索树的常见操作insert(key) 向树中插原创 2021-04-17 20:25:19 · 742 阅读 · 2 评论 -
JavaScript数据结构(哈希表)
JavaScript数据结构——哈希表JavaScript数据结构(哈希表)哈希表哈希表常见操作JavaScript代码简单实现封装哈希表JavaScript数据结构(哈希表)哈希表哈希表基于数组实现,但相对于数组。提供非常快速的 插入-删除-查找 操作哈希表中的 key 是不允许重复的,不能放置相同的 key,用于保存不同的元素哈希化:把字符串转化为对应的下标值。封装在一个函数中,这个函数就叫哈希函数不同的字符串哈希化后可能等到同于个下标值,产生地址冲突。解决方案:链地址法和开放地址法原创 2021-04-14 17:14:40 · 885 阅读 · 2 评论 -
JavaScript数据结构(集合)
JavaScript数据结构——集合JavaScript数据结构(集合)封装集合集合常见的操作JavaScript代码实现封装集合基本方法实现多个集合操作测试代码JavaScript数据结构(集合)集合通常是由一组无序的、不能重复的元素构成封装集合集合常见的操作add(value) 向集合添加一个新的项。remove(value) 从集合移除一个值。has(value) 如果值在集合中,返回 true,否则返回false。clear() 移除集合中的所有项。size() 返回集合所包含元原创 2021-04-13 23:24:49 · 834 阅读 · 0 评论 -
JavaScript数据结构(双向链表)
JavaScript数据结构(双向链表)双向链表&单向链表双向链表常见的操作JavaScript代码双向链表的封装双向链表&单向链表单向链表:只能从一端向另一端遍历双向链表:既可以从头部向尾部开始遍历,也可以熊尾部向头部开始遍历。一个head指针指向第一个节点,一个tail指针指向最后一个节点。当没有节点时,head指针和tail指针都指向NULL。双向链表常见的操作append(element) 向链表尾部追加一个新元素。insert(position, element原创 2021-04-13 18:25:41 · 690 阅读 · 0 评论 -
js数组的常用方法 详细 (一)
js数组的常用方法(api)1.在数组后面插入元素`push(value)`2.在数组后面删除一个元素`pop()`3.在数组前面添加元素`unshift(value)`4.在数组前面删除一个元素`shift()`5.排序`sort(compareFn?)`6.翻转数组`reverse()`7.连接两个或多个数组`concat(value)`8.数组截取`slice(start,end)`9.数组刷新`splice(start, deleteCount?,value?)`10.寻找索引`indexOf(se原创 2021-04-10 20:49:30 · 828 阅读 · 5 评论 -
js数组的常用方法 详细 (二)
js数组的常用方法二(api)1.判断是否为数组`isArray(any)`2.数组转字符串`toString()`&`join(string)`3.数组转字符串`split(splitter)`4.数组填充`fill(value,start?,end?)`5.伪数组转真正数组`Array.from(iterable)`6.一组值转变为数组`rray.of(...items)`7.找到第一个符合条件的数`find(callback)`或下标`findIndex(callback)`1.判断是否为数原创 2021-04-10 20:51:11 · 1708 阅读 · 2 评论 -
JavaScript数据结构 (单向链表)
JavaScript数据结构—— 单向链表JavaScript数据结构(三) 单向链表认识链表链表与数组的区别链表图示链表中的常见操作JS代码实现链表的操作JavaScript数据结构(三) 单向链表认识链表链表与数组的区别数组数组相邻的元素之间空间是连续的JavaScript提供了许多处理数组的方法对经常用下标来操作时候,数组的效率会比链表高链表相邻的元素之间空间是可能是不连续的对元素经常要删除和插入,相对数组链表的操作效率要高访问链表内的元素,都要从链表的表头一个一个开始找。原创 2021-04-11 17:10:59 · 769 阅读 · 0 评论 -
JavaScript 数据结构(队列)
JavaScript 数据结构——队列JavaScript 数据结构(二)队列什么是队列队列常见的操作JavaScript (数组)代码实现优先队列JavaScript 数据结构(二)队列什么是队列队列是一种受限的线性结构,只能从一段取出元素(队首),从另一端放入元素(队尾)队列的特点:先进先出,后进后出队列常见的操作enqueue(element) 向队列尾部添加一个(或多个)新的项。dequeue() 移除队列的第一(即排在队列最前面的)项,并返回被移除的元素。front() 返回队列原创 2021-04-11 10:50:34 · 789 阅读 · 0 评论 -
JavaScript数据结构(栈)
JavaScript数据结构 ——栈JavaScript数据结构(一) 栈什么是栈常见栈操作JavaScript(数组)实现栈结构JavaScript数据结构(一) 栈什么是栈栈是一种受限的线性结构,只允许在一端(栈顶)进行删除(出栈)和添加(入栈)操作。栈的特点:先进后出,后进先出练习:有 6 个元素 6,5,4,3,2,1 按顺序进栈,问下列哪一个不是合法的出栈顺序。A:5 4 3 6 1 2 (√)B:4 5 3 2 1 6 (√)C:3 4 6 5 2 1 (×)D:2 3 4原创 2021-04-11 10:49:26 · 679 阅读 · 0 评论