《计算思维与算法入门》 —2.5 堆栈

举报
华章计算机 发表于 2019/12/10 14:42:17 2019/12/10
【摘要】 本节书摘来自华章计算机《计算思维与算法入门》一书中第2章,第2.5节,作者是赵军 等。

2.5    堆栈

堆栈(Stack)是一组相同数据类型的组合,所有的操作均在堆栈顶端进行,具有“后进先出”的特性。所谓后进先出,其实就如同自助餐中餐盘在桌面上一个一个往上叠放,在取用时先拿最上面的餐盘,这是典型的堆栈概念的应用,如图2-37所示。

 image.png

图2-37  自助餐中餐盘存取就是一种堆栈的应用

堆栈是一种抽象数据结构(Abstract Data Type,ADT),具有下列特性:

(1)只能从堆栈的顶端存取数据。

(2)数据的存取符合“后进先出”的原则。

堆栈压入和弹出的操作过程如图2-38所示。

 image.png

图2-38  堆栈压入和弹出的操作过程

堆栈的基本运算有表2-1所示的5种。

表2-1  堆栈的基本运算

image.png

堆栈压入和弹出操作示意图如图2-39所示。

 image.png

图2-39  堆栈push(压入)和pop(弹出)操作示意图

堆栈结构在计算机中应用得相当广泛,常用于计算机程序的运行,例如递归调用、子程序的调用。在日常生活中的应用也随处可见,例如大楼的电梯(见图     2-40)、货架上的商品等,其原理都类似于堆栈这样的数据结构。

 image.png

图2-40  电梯搭乘方式就是一种堆栈的应用


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。