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

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

我正在寻找分流码算法,我将需要这些数据结构。


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技巧”


Javascript具有push和pop方法,它们在普通的Javascript数组对象上运行。

对于队列,请看这里:

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

可以使用推送和移位方法或数组对象的非移位和弹出方法在JavaScript中实现队列。 虽然这是实现队列的一种简单方法,但对于大型队列来说效率非常低 - 因为这些方法在数组上运行,所以每次调用时,shift和unshift方法都会移动数组中的每个元素。

Queue.js是一个简单且高效的JavaScript队列实现,它的出列函数以分摊的恒定时间运行。 因此,对于更大的队列,它可以比使用阵列快得多。


阵列。

堆栈:

var stack = [];

//put value on top of stack
stack.push(1);

//remove value from top of stack
var value = stack.pop();

队列:

var queue = [];

//put value on end of queue
queue.push(1);

//Take first value from queue
var value = queue.shift();
链接地址: http://www.djcxy.com/p/14083.html

上一篇: How do you implement a Stack and a Queue in JavaScript?

下一篇: How JavaScript decides what size of memory to allocate for a numeric value?