博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript 实现常见数据结构 —— 栈与队列
阅读量:5350 次
发布时间:2019-06-15

本文共 1888 字,大约阅读时间需要 6 分钟。

栈,是一种遵循后进先出(LIFO)原则的有序集合。

队列,是一种遵循先进先出(FIFO)原则的有序集合。

 

在 JavaScript 中,我们可以通过数组相关的方法很容易的扩展出这两种数据结构。

 

栈的 JavaScript 代码实现:

/** * Initialize your data structure here. */var MyStack = function() {    this._data = [];};/** * Push element x onto stack.  * @param {number} x * @return {void} */MyStack.prototype.push = function(x) {    this._data.push(x);};/** * Removes the element on top of the stack and returns that element. * @return {number} */MyStack.prototype.pop = function() {    return this._data.pop();};/** * Get the top element. * @return {number} */MyStack.prototype.top = function() {    return this._data[this._data.length -1];};/** * Returns whether the stack is empty. * @return {boolean} */MyStack.prototype.empty = function() {    return this._data.length === 0;};/**  * Your MyStack object will be instantiated and called as such: * var obj = new MyStack() * obj.push(x) * var param_2 = obj.pop() * var param_3 = obj.top() * var param_4 = obj.empty() */

 

队列的 JavaScript 代码实现:

/** * Initialize your data structure here. */var MyQueue = function() {   this._queue = [];};/** * Push element x to the back of queue.  * @param {number} x * @return {void} */MyQueue.prototype.push = function(x) {    this._queue.push(x);};/** * Removes the element from in front of queue and returns that element. * @return {number} */MyQueue.prototype.pop = function() {    return this._queue.shift();};/** * Get the front element. * @return {number} */MyQueue.prototype.peek = function() {    return this._queue[0];};/** * Returns whether the queue is empty. * @return {boolean} */MyQueue.prototype.empty = function() {    return this._queue.length === 0;};/**  * Your MyQueue object will be instantiated and called as such: * var obj = new MyQueue() * obj.push(x) * var param_2 = obj.pop() * var param_3 = obj.peek() * var param_4 = obj.empty() */

 

转载于:https://www.cnblogs.com/mykiya/p/10959729.html

你可能感兴趣的文章
CRM product UI里assignment block的显示隐藏逻辑
查看>>
AMH V4.5 – 基于AMH4.2的第三方开发版
查看>>
Web.Config文件配置之配置Session变量的生命周期
查看>>
mysql导入source注意点
查看>>
linux下编译安装nginx
查看>>
ArcScene 高程不同的表面无法叠加
查看>>
[ONTAK2010] Peaks
查看>>
DLL 导出函数
查看>>
windows超过最大连接数解决命令
查看>>
12个大调都是什么
查看>>
angular、jquery、vue 的区别与联系
查看>>
参数范围的选择
查看>>
使用 MarkDown & DocFX 升级 Rafy 帮助文档
查看>>
THUPC2019/CTS2019/APIO2019游记
查看>>
Nodejs Express模块server.address().address为::
查看>>
4.3.5 Sticks (POJ1011)
查看>>
POJ 2960 S-Nim 博弈论 sg函数
查看>>
Dijkstra模版
查看>>
一个简单的插件式后台任务管理程序
查看>>
GDB调试多进程程序
查看>>