JS基础数据结构
JS基础数据结构
bestadc
这个作者很懒,什么都没留下…
展开
-
8__树__
树 二叉树中的节点最多只能有两个子节点:一个是左侧子节点,另一个是右侧子节点。这个定义有助于我们写出更高效地在树中插入、查找和删除节点的算法。 二叉搜索树(BST)是二叉树的一种,但是只允许你在左侧节点存储(比父节点)小的值,在右侧节点存储(比父节点)大的值。 中序遍历的值 3 5 6 7 8 9 10 11 12 13 14 15 18 20 25 先序遍历的值 11 7 5 3 6 9 8 10 15 13 12 14 20 18 25 后序遍历的值 3 6 5 8 10 9原创 2021-09-05 18:06:55 · 77 阅读 · 0 评论 -
7__递归__
递归 递归阶乘 function factorial(n) { if (n === 1 || n === 0) { return 1; } return n * factorial(n - 1); } JavaScript 调用栈大小的限制 // 栈溢出错误,测试浏览器上限 let i = 0; function recursiveFn() { i++; recursiveFn(); } try { recursiveFn(); } catch (ex) { cons原创 2021-09-01 20:29:13 · 69 阅读 · 0 评论 -
6__字典和散列表__
字典和散列表 字典也称作映射、符号表或关联数组 // 默认变字符串String,把所有作为键名传入的对象转化为字符串 // 注意:item变量是对象的话会导致输出为 [object Object] function defaultToString(item) { if (item === null) { return "NULL"; } else if (item === undefined) { return "UNDEFINED"; } else if (typeof i原创 2021-08-30 21:03:45 · 129 阅读 · 0 评论 -
5__集合__
集合(不允许值重复的顺序数据结构) 没有副作用的方法和函数被称为纯函数。纯函数不会修改当前的实例或参数,只会生成一个新的结果。本文实现的 union、intersection 和 difference 方法不会修改当前的 Set 类实例或是作为参数传入的 otherSet。这在函数式编程中是非常重要的概念 class Set { constructor() { this.items = {}; } // 向集合添加一个新元素 add(element) { if (!thi原创 2021-08-29 16:54:55 · 81 阅读 · 0 评论 -
4__链表__
链表 链表数据结构(普通链表) // 单向链表 function defaultEquals(a, b) { return a === b; } class Node { constructor(element, next) { // 要加入链表元素的值 this.element = element; // 指向链表中下一个元素的指针 this.next = next; } } class LinkedList { // 类实例化时传入的参数会用作构造函原创 2021-08-28 23:22:23 · 83 阅读 · 0 评论 -
3__队列和双端队列__
队列和双端队列(先进先出) 创建队列 class Queue { constructor() { // 队列的大小 this.count = 0; // 队列第一个元素 this.lowestCount = 0; this.items = {}; } // 向队列添加元素,新的项只能添加到队列末尾 enqueue(element) { this.items[this.count] = element; this.count++; }原创 2021-08-25 23:12:15 · 86 阅读 · 0 评论 -
2__栈(先进后出)__
栈(先进后出) 创建一个基于数组的栈 class Stack { constructor() { this.items = []; } // 添加一个(或几个)新元素到栈顶 push(element) { this.items.push(element); } // 移除栈顶的元素,同时返回被移除的元素 pop() { return this.items.pop(); } // 返回栈顶的元素,不对栈做任何修改(该方法不会移除栈顶的元素,仅仅返回它原创 2021-08-24 22:55:57 · 141 阅读 · 0 评论 -
1__数组__
数组 数组API请点击 先写个斐波那契数列 // 求斐波那契数列的前n个数 function Fibonacci(n) { const fibonacci = []; fibonacci[1] = 1; fibonacci[2] = 1; for (let i = 3; i < n; i++) { fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2]; } for (let i = 1; i < fibonacci.原创 2021-08-24 22:48:03 · 61 阅读 · 0 评论