js进栈出栈_JavaScript中的数据结构——栈(Stack)和队列(Queue)

本文深入介绍了JavaScript中的两种重要数据结构——栈(Stack)和队列(Queue)。通过实例展示了如何使用Java实现栈的push()和pop()操作,以及队列的size()、enqueue()和dequeue()操作。栈遵循后进先出(LIFO)原则,而队列则遵循先进先出(FIFO)原则。文章还提供了使用数组的push()、pop()和reverse()方法来模拟栈和队列操作的示例。
摘要由CSDN通过智能技术生成

原标题:JavaScript中的数据结构——栈(Stack)和队列(Queue)

栈在Java中的实现和原理

栈(stack),也称堆栈,在计算机科学领域中,栈是一种线性数据结构,它只能在数据串列或阵列的一端进行入栈(push)和出栈(pop)操作,按照后进先出(LIFO)原理进行运作,一张图表示栈的工作如图1:

下面将使用Java实现这一数据结构。

栈的操作

根据栈的工作方式,我们定义栈的两个操作:

1.push(data):加入数据,也称入栈。

2.pop():将最近加入的数据移除,也称出栈。

栈的具体实现

通过使用Java构造函数和原型的方式实现栈的功能。每个构造函数拥有_size和_storage两个属性。

function Stack() { this._size = 0; this._storage = {};}

_storage:存储栈的数据,使用对象作为栈数据的集合;

_size:栈的数据长度,当栈新增加(push)一个数据,时,size长度加1,当栈弹出(pop)一个数据,size长度减1。

有了Stack构造函数,接下来通过原型对象实现push(data)方法(因为push方法时所有栈共有方法,故使用prototype使得该方法共享)。

push(data)方法需要具备以下两个功能:

1.每次增加一个数据,我们希望增加栈的数据长度;

2.每次增加一个数据,我们希望将此数据加在栈的顶端。

具体的代码实现如下:

Stack.prototype.push = function(data) { // 增加数据长度 var size = this._size++; // 将数据加到栈的顶部 this._storage[size] = data;};

push(data)方法之后就是pop()方法,针对pop()的设计思想是:

1.通过栈的当前的长度获取栈顶数据;

2.删除第一步获得的栈顶数据;

3.栈长度size减1;

4.返回弹出栈的数据。

具体的代码实现如下:

Stack.prototype.pop = function() { var s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值