javaScript数组中的栈和队列

栈方法


栈是一种LIFO(Last-In-First-Out,后进先出)的数据结构。其实通俗的讲就是最新添加的项最早被移除。而栈中项的插入(叫做推入)和移除(叫做弹出),只发生在一个位置——栈的顶部。

在ECMAScript中数组也提供了让它类似于其他数据结构的方法。具体来说,数组可以表现得像栈一样。还是举例子吧。

ECMAScript为数组专门提供了push()pop()方法。


push()方法:可以接收任意数量的参数,把他们逐个添加到数组末尾,并返回修改后数组的长度

pop()方法:则从数组末尾移除最后一项,减少数组的length值,然后返回移除的项。


var colors = new Array();
var count = colors.push("red","green");
alert(count); //2

count = colors.push("black");
alert(count); //3

var item = colors.pop();
alert(item); //"black"
alert(colors.length); //2




队列方法


栈数据结构的访问规则是LIFO(后进先出),而队列数据结构的访问规则是FIFO(First-In-First-Out,先进先出)。队列在列表的末端添加项,从列表的前端移除项。


由于push()是向数组末端添加项的方法,因此我们需要解决的就是从数组的前端移除项。实现这一操作的数组方法就是shift(),它能够移除数组中的第一个项并返回该项,同时将数组长度减一。下面就是结合使用shift()push()方法的例子:
var colors = new Array();
var count = colors.push("red","green");
alert(count); //2


count = colors.push("black");
alert(count); //3


var item = colors.shift();
alert(item); //"red"
alert(colors.length); //2


ECMAScript还为数组提供了一个unshift()方法。它能够在数组前端添加任意项并返回新数组的长度。由此我们可以自由组合进行许多有意思的模拟。


同时使用unshift()和pop()方法,可以从相反的方向来模拟队列。即在数组的前端添加项,从数组末端移除项,如下面的例子所示:
var colors = new Array();
var count = colors.unshift("red","green");
alert(count); //2


count = colors.unshift("black");
alert(count); //3


var item = colors.pop();
alert(item); //"green"
alert(colors.length); //2


当然也可以使用unshift()和shift()方法从相反的方向来模拟栈。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值