如何在 JavaScript 中实现堆栈和队列?

2022-08-29 22:16:02

在 JavaScript 中实现堆栈和队列的最佳方法是什么?

我想做调车场算法,我需要这些数据结构。


答案 1
var stack = [];
stack.push(2);       // stack is now [2]
stack.push(5);       // stack is now [2, 5]
var i = stack.pop(); // stack is now [2]
alert(i);            // displays 5

var queue = [];
queue.push(2);         // queue is now [2]
queue.push(5);         // queue is now [2, 5]
var i = queue.shift(); // queue is now [5]
alert(i);              // displays 2

摘自“你可能不知道的9个JavaScript技巧”"


答案 2

Javascript具有推送和pop方法,这些方法在普通的Javascript数组对象上运行。

对于队列,请查看此处:

http://safalra.com/web-design/javascript/queues/

队列可以在 JavaScript 中使用 push and shift 方法或数组对象的 unshift 和 pop 方法来实现。尽管这是实现队列的简单方法,但对于大型队列来说效率非常低下 — 由于这些方法在数组上运行,因此每次调用 shift 和 unshift 方法时都会移动数组中的每个元素。

Queue.js是JavaScript的一个简单而有效的队列实现,其取消排队函数在摊销的常量时间内运行。因此,对于较大的队列,它可能比使用数组快得多。