摘要:
集合是由一组无序且唯一(即不能重复)的项组成的。 class Set { constructor(){ this.items = {} } } Set.prototype.has = function(element){ // return element in this.items return 阅读全文
摘要:
递归:能够直接或间接调用自身的方法或函数,就是递归. 每一个递归函数都必须有基线条件,即一个不再递归调用的条件(停止点),以防止无限递归。 JavaScript调用栈大小的限制 如果忘记加上用以停止函数递归调用的基线条件,递归并不会无限地执行下去,浏览器会抛出错误,也就是所谓的栈溢出错误(stack 阅读全文
摘要:
树数据结构:树是一种分层数据的数据模型 树数据结构理解:位于树顶部的节点叫做根节点.它没有父节点.树中的每个元素都叫做节点,节点分为内部节点和外部节点.至少有一个子节点的节点称为内部节点.没有子元素的节点称为外部节点或叶节点. 二叉树和二叉搜索树:二叉树中的节点最多只能有两个子节点:一个是左侧子节点 阅读全文
摘要:
队列数据是遵循先进先出(FIFO)原则的一组有序的项。队列在尾部添加新元素,并从顶部移除元素。最新添加的元素必须排在队列的末尾。 class Queue { constructor(){ this.count = 0 this.lowestCount = 0 this.items = {} } } 阅读全文
摘要:
栈是一种遵从后进先出(LIFO)原则的有序集合。新添加或待删除的元素都保存在栈的同一端,称为栈顶,另一端称为栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。 class Stack { constructor(){ this.items = [] } } Stack.prototype.push 阅读全文
摘要:
在数组开头插入元素 Array.prototype.insertFirstPosition = function(value){ for(let i = this.length;i > 0;i--){ this[i] = this[i - 1] } this[0] = value } 从数组开头删除 阅读全文