数据结构中的栈

栈是一种后进先出(LIFO)的数据结构,常用于程序中的函数调用。在JavaScript中,栈的常用方法包括进栈和出栈。当函数相互调用时,如A调用B,B调用C,C调用D,它们会形成一个函数调用栈,每次调用都将函数压入栈顶,执行完毕后从栈顶弹出。理解栈的工作原理对于编程至关重要。
摘要由CSDN通过智能技术生成

前言

栈是一种非常常见的数据结构,并且在程序中的应用非常广泛。

介绍

栈(stack)是一种受限的线性表后进先出(LIFO)

  • 其限制是仅允许在表的一端进行插入和删除运算,这一端称为栈顶,相对的另一端就成为栈底。
  • 向一个栈中添加新元素称为进栈、入栈或压栈,添加的新元素会成为栈中的新的栈顶元素。
  • 而删除栈中元素称为出栈或退栈,删除掉的元素是栈顶元素,删除后在其下面的元素会随之成为新的栈顶元素。
  • LIFO(last in first out)表示就是后进入的元素先弹出栈空间,最先进栈的则最后弹出栈空间。

以下是栈结构的示意图:
在这里插入图片描述

javascript中栈的常用方法

- push(ele)

程序中使用栈实现的例子(函数调用栈)

我们知道函数之间是可以相互调用的,如:A调用B,B调用C,C再调用D
在执行的过程中会将A压入栈,A没有执行完,所以不会弹出栈
在A执行的过程中调用了B,会将B压入到栈中,这个时候B在栈顶,A在栈底
这个时候如果B执行完了,那么B会弹出栈,但是如果B没有执行完,就会调用C
所以会将C压入栈,同样也是在栈顶
同理若D没执行完则D也压入栈
所以当前的栈顺序为:栈底 | A => B => C => D | 栈顶
当D执行完则弹出栈,C、B、A也会依次弹出栈
这种程序就称为函数调用栈(因为其通过栈实现)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值