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

新手上路,请多包涵

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

我正在寻找做调车场算法,我将需要这些数据结构。

原文由 KingNestor 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 567
2 个回答
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 技巧

原文由 Corey Ballou 发布,翻译遵循 CC BY-SA 4.0 许可协议

Javascript 有 push 和 pop 方法,它们对普通的 Javascript 数组对象进行操作。

对于队列,看这里:

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

可以使用数组对象的 push 和 shift 方法或 unshift 和 pop 方法在 JavaScript 中实现队列。尽管这是一种实现队列的简单方法,但对于大型队列来说效率很低——因为这些方法对数组进行操作,每次调用 shift 和 unshift 方法时都会移动数组中的每个元素。

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

原文由 Robert Harvey 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏