本文通过JavaScript数组演示栈与队列的四种实现方式。重点解析利用push、pop、unshift、shift方法组合,实现后进先出(LIFO)与先进先出(FIFO)逻辑,涵盖从队尾或队首添加/移除元素的具体代码示例。
本文通过JavaScript数组演示栈与队列的具体操作示例,供读者参考学习。
栈结构实现(LIFO)
首先介绍栈数据结构的基本特性。
栈遵循后进先出(LIFO)原则,即元素在列表尾端添加,并从列表尾端移除。
栈的结构示意图如下。

对应的实现代码如下。
var colors = ["red","blue"];
colors.push("brown"); //从队列尾部添加一项
console.log(colors);//[ 'red', 'blue', 'brown' ]
var item =colors.pop(); //从队列尾部移出一项
console.log(colors);//[ 'red', 'blue' ]
反向栈结构实现(LIFO)
第二种模式同样属于后进先出(LIFO)结构,但操作位置不同:元素在列表首端添加,并从列表首端移除。
该队列的结构示意图如下。

对应的实现代码如下。
var colors=["red","blue"];
colors.unshift("green"); //从队列的前端添加一项
console.log(colors);//[ 'green', 'red', 'blue' ]
colors.shift(); //从队列的前端移除一项
console.log(colors);//[ 'red', 'blue' ]
标准队列实现(FIFO)
第三种模式为先进先出(FIFO)结构,元素在列表末端添加,并从列表首端移除。
该队列的结构示意图如下。

对应的实现代码如下。
var colors=new Array();
var count=colors.push("red","green"); //从队列尾部推入两项
console.log(count);//2
var count=colors.push("black"); //从队列尾部推入另一项
console.log(colors);//[ 'red', 'green', 'black' ]
console.log(count);//3
var item=colors.shift(); //取得队列的第一项
console.log(item);//red
console.log(colors);//[ 'green', 'black' ]
反向队列实现(FIFO)
第四种模式也是先进先出(FIFO)结构,元素在列表首端添加,并从列表尾端移除。
该队列的结构示意图如下。

对应的实现代码如下。
var colors=new Array(); //创建一个数组
var count=colors.unshift("red","green"); //从队列首部添加两项
console.log(colors);//[ 'red', 'green' ]
count =colors.unshift("black"); //从队列首部添加另一项
console.log(colors);//[ 'black', 'red', 'green' ]
var item=colors.pop(); //从队列尾部移出一项
console.log(colors);//[ 'black', 'red' ]
如需了解更多JavaScript相关内容,可参考本站专题:《JavaScript数据结构与算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》。
希望本文所述内容能对大家的JavaScript程序设计有所帮助。