栈
一个先进后出的数据结构 JS中没有栈,用Array实现栈的功能 进栈: push 出栈:pop 栈的应用场景:
- 十进制转二进制
- 判断字符串的括号是否有效
习题:
队列
一个先进后出的数据结构 同样JS中没有队列,用Array实现队列 进队: push 出队:shift 应用场景
- JS异步中的任务队列
- 计算最近请求 习题: LeetCode:933. 最近的请求次数
链表
多个元素组成的列表 元素存储不连续,用next指针连在一起
数组VS链表
- 数组: 增删非首元素时往往需要移动元素
- 链表: 增删非首元素,不需要移动元素,只需要更改next的指向即可 JS中的链表
const a = {val : 'a'}
const b = {val : 'b'}
const c = {val : 'c'}
a.next = b;
b.next = c;
c.next = d;
链表的遍历
let p = a;
while (a) {
p = p.next;
}
链表插入
const e = {val : 'e'};
c.next = e;
e.next = d;
链表的删除
c.next = c.next.next