26
不知道栈有什么用?可视化动图带你一步步讲解
source link: http://developer.51cto.com/art/202007/620560.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
前言
概念介绍
- 栈(stack)是限定仅在表尾(即栈顶)进行插入和删除操作的线性表
- 栈的2种操作方式
- 插入操作,叫做进栈,也叫压栈、入栈
- 删除操作,叫做出栈,也叫弹栈
- 栈的2种存储方式
- 顺序存储
- 链式存储
原理讲解
当栈中只有9和12这2个元素时,效果如下图
进栈操作
我们插入一个元素20,效果如下图
出栈操作
对于栈来说,出栈只能将栈顶元素删除。因此,执行一次出栈动作,就会删除掉栈顶元素20,效果如下图
至此,栈的实现原理讲解完毕
栈的优缺点
优点
- 快速访问
- 自动管理,不需要程序员管理
- 空间被CPU高效管理,内存不会变成碎片
缺点
- 只有局部变量
- 受限于栈的大小(取决于操作系统)
- 变量不能调整大小
栈的作用
- 保存程序运行现场/上下文
- 递归操作
- 保存临时变量
效果展示
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK