• 栈: 后进先出 LIFO (last in first out)
• 队列: 先进先出 FIFO (first in first out)
• 栈和堆:数据存储
• 栈和队列:数据访问顺序
js数组 具备了 栈 + 队列
push
pop
unshift
shift
var list = [1, 2, 3]; // 队尾入栈 list.push(4); console.log(list); // [ 1, 2, 3, 4 ] var val1 = list.pop(); console.log(list); // [ 1, 2, 3 ] console.log(val1); // 4 // 队首入栈 list.unshift(0); console.log(list); // [0, 1, 2, 3] var val2 = list.shift(); console.log(list); // [1, 2, 3] console.log(val2); // 0
- 结尾出入栈,不影响原有数据位置索引,效率高
- 开头出入栈,会影响原有的数据位置索引,效率低