在 JavaScript 中实现堆栈和队列的最佳方法是什么?
我正在寻找 shunting-yard 算法,并且我将需要这些数据结构。
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
Javascript 具有 push 和 pop 方法,可对普通 Javascript 数组对象进行操作。
对于队列,请看这里:
http://safalra.com/web-design/javascript/queues/
可以使用数组对象的 push 和 shift 方法或 unshift 和 pop 方法在 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();