数据结构
文章平均质量分 95
数据结构总结
RedemptionQ。
这个作者很懒,什么都没留下…
展开
-
JavaScript实现单向链表
链表和数组一样,可以用于存储一系列的元素,但是链表和数组的实现机制完全不同。链表的每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(有的语言称为指针或连接)组成。类似于火车头,一节车厢载着乘客(数据),通过节点连接另一节车厢。head属性指向链表的第一个节点;链表中的最后一个节点指向null;当链表中一个节点也没有的时候,head直接指向null;数组的创建通常需要申请一段连续的内存空间(一整块内存),并且大小是固定的。所以当原数组不能满足容量需求时,需要扩容。原创 2023-04-12 20:00:55 · 248 阅读 · 0 评论 -
JavaScript实现树结构(一)
1.1.简单了解树结构什么是树?树一般都有一个根,连接着根的是树干;树干会发生分叉,形成许多树枝,树枝会继续分化成更小的树枝;树枝的最后是叶子;现实生活中很多结构都是树的抽象,模拟的树结构相当于旋转180°的树。树结构对比于数组/链表/哈希表有哪些优势呢:优点:可以通过下标值访问,效率高;缺点:查找数据时需要先对数据进行排序,生成有序数组,才能提高查找效率;并且在插入和删除元素时,需要大量的位移操作;优点:数据的插入和删除操作效率都很高;查找。原创 2023-05-24 13:46:31 · 269 阅读 · 0 评论 -
JavaScript实现集合与字典
实现思路:遍历集合A,当取得的元素中有一个不存在于集合B时,就说明集合A不是集合B的子集,返回false。实现思路:遍历集合A,当取得的元素也存在于集合B时,就把该元素添加到另一个集合C中。实现思路:遍历集合A,当取得的元素不存在于集合B时,就把该元素添加到另一个集合C中。类就是一个集合类,这里我们重新封装一个Set类,了解集合的底层实现。实现思路:创建集合C代表集合A和集合B的并集,先将集合。就是一个集合,可以使用它来封装集合类Set。:返回集合所包含元素的数量,与数组的。:移除集合中的所有项;原创 2023-04-14 19:54:00 · 853 阅读 · 0 评论 -
JavaScript实现双向链表
双向链表:既可以从头遍历到尾,又可以从尾遍历到头。也就是说链表连接的过程是双向的,它的实现原理是:一个节点既有向前连接的引用,也有一个向后连接的引用。每次在插入或删除某个节点时,都需要处理四个引用,而不是两个,实现起来会困难些;相对于单向链表,所占内存空间更大一些;但是,相对于双向链表的便利性而言,这些缺点微不足道。双向链表不仅有head指针指向第一个节点,而且有tail指针指向最后一个节点;item储存数据、prev指向前一个节点、next指向后一个节点;原创 2023-04-13 19:45:01 · 321 阅读 · 0 评论 -
JavaScript实现栈结构(Stack)
1.1.什么是数据结构?数据结构就是在计算机中,存储和组织数据的方式。例如:图书管理,怎样摆放图书才能既能放很多书,也方便取?主要需要考虑两个问题:操作一:新书怎么插入?操作二:怎么找到某本指定的书?(Aarray)(Stack)(Graph)(Hash)(Queue)(Tree)(Heap):数据结构与算法与语言无关,常见的编程语言都有的使用上述常见的数据结构。1.2.什么是算法?算法(Algorithm)的定义一个有限指令集,每条指令的描述不依赖于语言;原创 2023-04-10 19:59:56 · 172 阅读 · 0 评论 -
JavaScript实现队列结构(Queue)
队列是是一种受限的线性表,特点为先进先出FIFO受限之处在于它只允许在表的前端(front)进行删除操作;在表的后端(rear)进行插入操作;相当于排队买票,先来的先买票,后来的后买票。打印队列:计算机打印多个文件的时候,需要排队打印;线程队列:当开启多线程时,当新开启的线程所需的资源不足时就先放入线程队列,等待CPU处理;队列的实现和栈一样,有两种方案:基于数组实现;基于链表实现;enqueue(element):向队列尾部添加一个(或多个)新的项;原创 2023-04-10 19:53:52 · 759 阅读 · 0 评论 -
JavaScript实现哈希表
1.1.认识哈希表哈希表通常是基于数组哈希表可以提供非常快速的插入-删除-查找操作;无论多少数据,插入和删除值都只需要非常短的时间,即O(1)的时间级。实际上,只需要几个机器指令即可完成;哈希表的速度比树还要快,基本可以瞬间查找到想要的元素。但是相对于树来说编码要简单得多。哈希表同样存在不足之处哈希表中的数据是没有顺序的,所以不能以一种固定的方式(比如从小到大 )来遍历其中的元素。通常情况下,哈希表中的key是不允许重复的,不能放置相同的key,用于保存不同的元素。哈希表是什么?原创 2023-05-21 10:07:51 · 321 阅读 · 0 评论