ECMAScript 数组实现栈和队列操作

1.栈方法

       ECMAScript 数组提供了一种让数组的行为类似于其他数据结构的方法。具体说来,数组可以表现得就像栈一样,栈是一种可以限制插入和删除项的数据结构。栈是一种 LIFO(Last-In-First-Out,后进先出)的数据结构,也就是最新添加的项最早被移除。而栈中项的插入(叫做推入)和移除(叫做弹出),只发生在一个位置——栈的顶部。ECMAScript 为数组专门提供了 push()和 pop()方法,以便实现类似栈的行为。
       push()方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。而pop()方法则从数组末尾移除最后一项,减少数组的length 值,然后返回移除的项。

var colors = [] // 创建一个数组
var count = colors.push("red", "green"); // 推入两项
alert(count); //2
var item = colors.pop(); // 取得最后一项
alert(item); //"green"
alert(colors.length); //1

2.队列方法

       队列数据结构的访问规则是 FIFO(First-In-First-Out,先进先出)。队列在列表的末端添加项,从列表的前端移除项。由于 push()是向数组末端添加项的方法,因此要模拟队列只需一个从数组前端取得项的方法。实现这一操作的数组方法就是 shift(),它能够移除数组中的第一个项并返回该项,同时将数组长度减 1。结合使用 shift()和 push()方法,可以像使用队列一样使用数组。

var colors = new Array(); //创建一个数组
var count = colors.push("red", "green"); //推入两项
alert(count); //2
var item = colors.shift(); //取得第一项
alert(item); //"red"
alert(colors.length); //1

       ECMAScript 还为数组提供了一个 unshift()方法。顾名思义,unshift()与 shift()的用途相反:它能在数组前端添加任意个项并返回新数组的长度。因此,同时使用 unshift()和 pop()方法,可以从相反的方向来模拟队列,即在数组的前端添加项,从数组末端移除项。

猜你喜欢

转载自blog.csdn.net/qq_42314621/article/details/86666948