js数据结构
整个专栏的代码已发布成一个npm包,win+r && cmd && npm install langtoudatastructure 下载查看使用
LiuJie_Boom
高粒度抽象的代价就是无法做到低粒度的修改
展开
-
基于js的对象实现字典数据结构
字典字典的定义字典和集合很相似,集合以[值,值]的形式存储元素,字典则是以[键,值]的形式来存储元素。字典也称作映射。字典的实现// 字典export default function() { this.items = {}; // 判断字典中是否有该值 this.__proto__.has = function(key) { return this.items.hasOwnProperty(key); }; // 向字典中添加新的值原创 2022-04-19 08:45:00 · 349 阅读 · 0 评论 -
基于js的数组实现哈希表数据结构与解决哈希冲突
哈希表/散列表哈希表的定义使用散列函数,就知道值的具体位置,能够快速检索到该值。散列函数的作用是给定一个键值, 然后返回值在表中的地址。哈希表的作用数组虽然查找和修改数据数据的值效率很快,但是删除和新增数组的操作很消耗性能 1. 而哈希表可以提供快速的插入-删除-查找操作 2. 无论多少数据,哈希表的插入与删除操作需要的时间都是O(1)。 3. 哈希表的速度比树还要快,基本可以瞬间查找到想要的元素哈希表的缺点哈希表中的数据是没有顺序的,所以不能以一种固定的顺序去遍历所原创 2022-04-19 08:45:00 · 363 阅读 · 0 评论 -
基于js的对象实现二叉搜索树
树树的概念根节点:位于树顶部的节点内部节点:至少有一个子节点的节点外部节点(叶节点):没有子节点的节点节点→父节点→祖父节点→曾祖父节点节点→子节点→孙子节点→曾孙节点子树:树的子集,由树的节点和该节点的后代组成节点的深度:取决于它的祖先节点的数量树的高度:最大的深度二叉树:节点最多只能有两个子节点,一个左侧子节点,另一个是右侧子节点完全二叉树:除了外部节点,所有的其它节点都有两个子节点二叉搜索树:是二叉树的一种,只允许左侧节点存储比父节点小的值,在右侧节点存储比原创 2022-04-19 08:45:00 · 1254 阅读 · 0 评论 -
基于js实现图数据结构
图的相关概念图是一组由边连接的节点的集合任何二元关系都可以用图表示相邻顶点:由一条边连接在一起的顶点顶点的度:该顶点的相邻顶点数量路径:顶点的连续序列,如A B C 简单路径:不包含重复的顶点如果图中不存在环,则称该图是无环的如果图中的每两个顶点间都存在路径,则该图是连通的无向图,图的边没有方向,图的边有方向有向图如果图中的每两个顶点在双向上都有路径,则该图是强连通的,反之就是稀疏图加权图与未加权图,也就是路径是否有大小图的表示方式图的表示方式有很多种,不存在绝对正确的方式,各有原创 2022-04-19 08:45:00 · 402 阅读 · 0 评论 -
基于js的对象实现集合数据结构
集合的定义集合是由一组无序且唯一(即不能重复)的项组成的。这个数据结构使用了与有限集合相同的数学概念JavaScript的对象不允许一个键 指向两个不同的属性,保证了集合里的元素都是唯一的。因此我们基于对象实现集合这种数据结构,将对象中的属性名等于属性值就可以存储数据了集合的实现// 集合export default function() { this.items = {}; // 这么写,创建多个集合时,用的都是一个对象 // let items = {};原创 2022-04-19 08:45:00 · 469 阅读 · 0 评论 -
基于js的对象实现链表数据结构
链表链表的定义链表存储有序的元素集合,但不同于数组,链表中的元素在内存中并不是连续放置的。每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成。数组的缺点数组的创建通常需要申请一段连续的内存空间,并且大小是固定的,所以当前数组不能满足容量需求时,需要扩容.是很浪费性能的数组开头或中间位置插入数据的成本很高,需要进行大量元素位移链表与数组的比较相对于传统的数组,链表的一个好处在于,添加或移除元素的时候不需要移动其他元素。然而,链表需要使用指针,因此实现链表时需要额原创 2022-04-18 15:48:04 · 390 阅读 · 0 评论 -
基于js的数组实现优先级队列
js优先级队列的实现原创 2022-04-18 14:06:41 · 103 阅读 · 0 评论 -
基于js的数组实现队列数据结构
js队列原创 2022-04-18 14:00:38 · 465 阅读 · 0 评论 -
基于js的数组实现栈数据结构
【数据结构】javascript实现栈结构原创 2022-04-18 12:36:59 · 468 阅读 · 0 评论