读js红宝书之:栈+队列

js中可以以数组来模拟栈和队里的行为哦,哎~数据结构这东西还是得会用到实际场景中,和算法神马最配哦。。。可是,无奈我还是没什么天赋。。废话不多说,说多了都是泪。。。

1.栈

  • push()方法:后进

接受任意参数,逐个添加到数组末尾,并返回修改后的数组长度。

  • pop()方法:先出

从数组末尾移除最后一项,减少length,并返回移除的项。

var colors = ['red', 'blue'];
colors.push('brown'); //此时 length为3
var item = colors.pop(); //item 为 brown, length为2

2.队列

  • push()方法:先进

  • shift()方法:先出

移除数组中的第一项,并返回该项,减少length

var colors = [];
colors.push('a', 'b');
var item = colors.shift(); //item为a, length为1

3.反向队列
和队列相反,即从队头加入元素,从队尾删除元素

  • unshift()方法:

    在数组头部添加任意项,并返回数组长度

  • pop()方法

var colors = [];
colors.unshift('a', 'b');
colors.unshift('c'); //['c', 'a', 'b']
colors.pop(); //['c', 'a']