数据结构
数据结构
cake_eat
加油,xm
展开
-
JS中的二叉搜索树
代码封装://封装二叉搜索树 function BinarySearchTree(){ //节点 function Node(key){ this.key = key; this.left = null; this.right = null; } //属性 this.root原创 2020-12-10 16:53:45 · 140 阅读 · 1 评论 -
JS中的哈希表
封装哈希表结构: //封装哈希表类 function HashTable(){ //属性 this.storage = []; this.count = 0; this.limit = 7; //方法 //哈希函数 HashTable.prototype.hashFunc = function (str,si原创 2020-12-07 20:50:20 · 689 阅读 · 0 评论 -
JS中的集合结构
1 集合结构的特点集合比较常见的实现方式是哈希表集合通常是一组无序的,不能重复的元素构成和数学中的集合名词比较相似,但是数学中的集合范围更大一些,也许集合中的元素重复在计算机中,集合通常表示的结构中的元素是不允许重复的集合是特殊的数组特殊之处在于里面的元素没有顺序,也不能重复没有顺序意味着不能通过下标值进行访问,不能重复意味着相同的对象在集合中只会存在一份2 集合中常见的方法add(value):向集合添加一个新的项。remove(value):从集合移除一个值。ha原创 2020-12-05 19:31:44 · 468 阅读 · 0 评论 -
JS中的双向链表
1 双向链表的特点可以使用一个head和一个tail分别指向头部和尾部节点每个节点都由三部分组成:前一个节点的指针(prev)/ 保存的元素(item)/ 后一个节点的指针(next)双向链表的第一个节点的prev是null双向链表的最后一个节点的next是null...原创 2020-12-04 17:32:42 · 189 阅读 · 0 评论 -
JS中的链表结构
1 相对于数组的优缺点链表的优点:内存空间不必连续,可以充分利用计算机的内存,实现灵活的内存动态管理链表不必在创建时就确定其大小,并且大小可以无限的延伸下去链表在插入和删除数据时,时间复杂度可以达到O(1),相对数组效率高很多链表的缺点:链表访问任何一个位置的元素时,都需要从头开始访问。(无法跳过第一个元素访问任何一个元素)无法通过下标直接访问元素,需要从头一个个访问,直到找到对应的元素2 链表的常见操作append(element):向列表尾部添加一个新的项insert(p原创 2020-12-02 19:52:31 · 608 阅读 · 0 评论 -
JS中的队列结构
JS中的队列结构1 特点同栈结构一样,队列也是一种受限的线性结构。它只允许在表的前端进行删除操作,在表的后端进行插入操作(先进先出)。2 队列的操作enqueue(element):向队列尾部添加一个(或多个)新的项。dequeue():移除队列的第一(即排在队列最前面的)项,并返回被移除的元素。front():返回队列中第一个元素——最先被添加,也将是最先被移除的元素。队列不做任何变动(不移除元素,只返回元素信息——与Stack类的peek方法非常类似)。isEmpty():如果队列中不原创 2020-12-01 21:16:26 · 126 阅读 · 0 评论 -
JS中的栈结构
JS中的栈结构1 特点只能在栈顶添加和删除元素(后进先出)2 栈的操作push(element): 添加一个新元素到栈顶位置.pop():移除栈顶的元素,同时返回被移除的元素。peek():返回栈顶的元素,不对栈做任何修改(这个方法不会移除栈顶的元素,仅仅返回它)。isEmpty():如果栈里没有任何元素就返回true,否则返回false。clear():移除栈里的所有元素。size():返回栈里的元素个数。这个方法和数组的length属性很类似。3 实现栈的两种方式基于数组实原创 2020-11-30 15:46:57 · 308 阅读 · 0 评论