数据结构与算法
大唐荣华
爱技术,爱生活
展开
-
JavaScript数据结构与算法之树的实现
树形结构是一种非线性数据结构。 树中的每个部分称为结点,结点间存在分支结构与层次关系。 ・每个树形结构都具有一个根结点。 ・根据结点之间的关系,也存在父结点、子结点、兄弟结点的概念。 不含子结点的结点称为叶节点。 子树:对某个结点与其后代结点的整体称呼。 由于存在父子关系,树中的结点形成多级结构,称为层级。 根节点层级为1,向下依次递增。 树中最深结点的层级称为树的高度 深度:树中最深的一个节点的层级 ...原创 2021-04-15 19:14:06 · 176 阅读 · 0 评论 -
JavaScript数据结构与算法之链表的实现
链表是一种有序的数据结构。它是一种更好的数据存储方式优化数组的存储功能。 链表中的每个部分称为节点。 链表可以从首、尾、中间的任意位置进行数据存储。 链表的元素在内存中不必是连续的空间。 优点:添加和删除时不会导致元素的位移。缺点:不可以快速根据索引定位元素。 数组存储有序数列。在内存中占有一段连续的空间。添加、移除会导致后续元素的位移,性能开销大。eg:array.push() >>> array.unshift() 对比:获取、修改元素时,数组效率高。添加、删除元素时,链表效率高。原创 2021-04-08 19:29:58 · 145 阅读 · 0 评论 -
JavaScript数据结构与算法之队列的实现
队列是一种遵循先进先出原则的有序集合。 添加新元素的一端称为队尾,另一端称为队首。类似于我们现实生活中的排队。 队列的实现 我们需要实现以下功能: enqueue()入队方法 dequeue()出队方法 top()获取队首值 size()获取队列的元素个数 clear()清空队列 代码 class Queue { constructor() { //用于存储队列数据 this.queue = []; this.count = 0; }原创 2021-04-07 11:58:15 · 143 阅读 · 0 评论 -
JavaScript数据结构与算法之栈的实现
栈是一种最基础的数据结构,它的核心是先进先出的思想。 最主要入栈push()、出栈pop()两种方法,其余还有clear()、size()、top()、isEmpty()方法的实现。 class Stack { constructor() { //存储栈的数据 this.data = []; //记录栈的数据个数(相当于数组的length) this.count = 0; } //isEmpyty() 检测栈是否为空原创 2021-04-06 15:51:47 · 172 阅读 · 0 评论