![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js数据结构与算法
__十七
这个作者很懒,什么都没留下…
展开
-
排序--希尔排序
希尔排序原创 2022-08-05 15:51:41 · 102 阅读 · 0 评论 -
排序---插入排序
插入排序原创 2022-08-05 15:28:39 · 92 阅读 · 0 评论 -
排序--选择排序
选择排序原创 2022-08-05 13:37:12 · 71 阅读 · 0 评论 -
排序--冒泡排序
冒泡排序原创 2022-08-05 13:15:07 · 90 阅读 · 0 评论 -
动态规划算法题梳理
1,01背包和完全背包概念理解2,01背包问题详解(1)已知信息分析已知条件:n件物品每件物品的重量数组每件物品的价值数组物品只能使用一次求解答案:哪些物品放入背包使得背包中物品的价值最大(2)例子题目背包的最大重量为4weightvalue物品0115物品1320物品2430求背包可以放置最多价值的物品。(3)解法解法一:暴力解法每件物品有两种状态,选或者不选,那么就可以使用回溯法搜索所有的情况。时原创 2022-05-05 22:18:12 · 175 阅读 · 0 评论 -
js数据结构--队列实现栈
在将一个元素 x 插入队列时,为了维护原来的后进先出顺序,需要让 x 插入队列首部。而队列的默认插入顺序是队列尾部,因此在将 x 插入队列尾部之后,需要让除了 x 之外的所有元素出队列,再入队列。用数组模拟队列,用一个队列实现栈js代码:var MyStack = function () { this.queue = [] }; /** * @param {number} x * @return {void} */ MyStack.原创 2022-03-07 11:33:13 · 545 阅读 · 0 评论 -
js数据结构 --用栈实现队列
栈的顺序为后进先出,而队列的顺序为先进先出。使用两个栈实现队列,一个元素需要经过两个栈才能出队列,在经过第一个栈时元素顺序被反转,经过第二个栈时再次被反转,此时就是先进先出顺序。js写法:// js写法var MyQueue = function () { // 让数组模拟栈 // stack1作为输入栈,stack2作为输出栈 this.stack1 = [] this.stack2 = [] }; /** * @para原创 2022-03-07 11:31:19 · 381 阅读 · 0 评论 -
js数据结构- 双向链表
双向链表双向链表概念:既可以从头遍历到尾,又可以从尾遍历到头。也就是说链表连接的过程是双向的,它的实现原理是:一个节点既有向前连接的引用,也有一个向后连接的引用。双向链表的缺点:每次在插入或删除某个节点时,都需要处理四个引用,而不是两个,实现起来会困难些;相对于单向链表,所占内存空间更大一些;但是,相对于双向链表的便利性而言,这些缺点微不足道。双向链表的结构:双向链表不仅有head指针指向第一个节点,而且有tail指针指向最后一个节点;每一个节点由三部分组成:item储存数据、原创 2022-03-03 19:46:11 · 189 阅读 · 0 评论 -
js数据结构 - 单向链表
单向链表链表和数组一样,可以用于存储一系列的元素,但是链表和数组的实现机制完全不同。链表的每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(有的语言称为指针或连接)组成。类似于火车头,一节车厢载着乘客(数据),通过节点连接另一节车厢。head属性指向链表的第一个节点;链表中的最后一个节点指向null;当链表中一个节点也没有的时候,head直接指向null;数组存在的缺点:数组的创建通常需要申请一段连续的内存空间(一整块内存),并且大小是固定的。所以当原数组不能满足容量需求时,需原创 2022-03-03 19:45:19 · 113 阅读 · 0 评论 -
js数据结构--优先级队列
优先级队列概念优先级队列主要考虑的问题为:每个元素不再只是一个数据,还包含数据的优先级;在添加数据过程中,根据优先级放入到正确位置;实现// 函数方式function PriorityQueue() { // 重新创建一个内部类,相当于将元素以及对应的优先级放在这个类中 function QueueElement(element, priority) { this.element = ele原创 2022-03-03 19:44:26 · 735 阅读 · 0 评论 -
js数据结构 - 队列
队列队列的概念队列是是一种受限的线性表,特点为先进先出(FIFO:first in first out)。受限之处在于它只允许在表的前端(front)进行删除操作;在表的后端(rear)进行插入操作;队列的应用:打印队列:计算机打印多个文件的时候,需要排队打印;线程队列:当开启多线程时,当新开启的线程所需的资源不足时就先放入线程队列,等待CPU处理;队列类的实现:队列的实现和栈一样,有两种方案:基于数组实现;基于链表实现;队列的常见操作:enqueue(element原创 2022-03-03 19:43:20 · 120 阅读 · 0 评论 -
js数据结构 --栈
栈栈结构是一个受限的线性表,后进先出其显示是仅仅允许在表的一段进行插入和删除,可操作的一端叫栈顶,另一端称为栈底。栈的应用比如函数调用栈当a调用了b,b调用了c在这个执行过程中,先将a压入栈底,a没有执行完不会弹出,a执行中,调用了b,再将b压入栈底,执行b时,有调用了c,就将c压入栈底,c执行完之后,出栈,再执行b,执行完之后,b再出栈,再执行a,a执行完之后,出栈面试题目[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Zv0WQ5s-16463076原创 2022-03-03 19:41:17 · 877 阅读 · 0 评论