进栈和出栈

栈(stack)和队列(queue):
其实都是普通数组,只不过调用了不同API而已
栈: 一端封闭,只能从另一端进出的数组
FILO
何时使用: 希望始终使用最新进入数组的元素时
如何使用:
1. 从结尾出入栈
入栈(压栈): arr.push(值1,值2,...)
不支持数组参数
出栈(弹栈): var last=arr.pop();
好处: 无论出入栈都不改变剩余元素的位置
2. 从开头出入栈
入栈: arr.unshift(值1,值2,...)
unshift入栈的顺序值从右向左读取参数
出栈: var first=arr.shift();
缺点: 每次出入栈都会导致其余元素的位置改变

队列: 从结尾进入,从开头出的数组
FIFO
何时使用: 希望按照先来后到的顺序依次使用元素时
1. 入队列(排队): arr.push();
2. 出队列: var first=arr.shift();

posted @ 2016-08-15 22:31  tracy_zzc  阅读(1833)  评论(0编辑  收藏  举报