摘要: 数组 依次存储 缺点: 对数组做删除或者插入的时候,可能需要移动大量的元素 栈 : push,pop 队列:push,shift 双向链表结构 可重复添加key值相同的元素 记录插入顺序 class ListNode { constructor(key) { // 指向前一个节点 this.prev 阅读全文
posted @ 2020-11-05 13:53 千年轮回 阅读(114) 评论(0) 推荐(0)
摘要: 栈:先进后出,新添加和待删除的元素都保存在栈顶。可以用数组的push方法入栈,pop出栈。 class Stack { constructor () { this.items = []; } push(element){ this.items.push(element); } pop(){ retu 阅读全文
posted @ 2020-11-05 13:49 千年轮回 阅读(78) 评论(0) 推荐(0)
摘要: 队列是遵循先进先出的一种数据结构,在尾部添加新元素,并从顶部移除元素。 1.普通队列 function Queue() { this.items = []; } Queue.prototype = { enqueue: function (element) { this.items.push(ele 阅读全文
posted @ 2020-11-05 13:48 千年轮回 阅读(129) 评论(0) 推荐(0)
摘要: 为什么需要复杂度分析 学习数据和算法就是为了解“快”和“省”的问题,也就是如何设计你的代码才能使运算效率更快,占用空间更小。那如何来计算代码执行效率呢?这里就会用到复杂度分析。 虽然我们可以用代码准确的计算出执行时间,但是这也会有很多局限性。 数据规模的不同会直接影响到测试结果。比如说同一个排序算法 阅读全文
posted @ 2020-11-05 13:46 千年轮回 阅读(1010) 评论(1) 推荐(0)