可视化动图带你一步步讲解栈有什么用

开发 前端
栈(stack)是限定仅在表尾(即栈顶)进行插入和删除操作的线性表。对于栈来说,出栈只能将栈顶元素删除。因此,执行一次出栈动作,就会删除掉栈顶元素20。

前言

 

不知道栈有什么用?可视化动图带你一步步讲解

 

不知道栈有什么用?可视化动图带你一步步讲解

 

不知道栈有什么用?可视化动图带你一步步讲解

概念介绍

  • 栈(stack)是限定仅在表尾(即栈顶)进行插入和删除操作的线性表
  • 栈的2种操作方式
  • 插入操作,叫做进栈,也叫压栈、入栈
  • 删除操作,叫做出栈,也叫弹栈
  • 栈的2种存储方式
  • 顺序存储
  • 链式存储

原理讲解

当栈中只有9和12这2个元素时,效果如下图

 

不知道栈有什么用?可视化动图带你一步步讲解

进栈操作

我们插入一个元素20,效果如下图

 

不知道栈有什么用?可视化动图带你一步步讲解

出栈操作

对于栈来说,出栈只能将栈顶元素删除。因此,执行一次出栈动作,就会删除掉栈顶元素20,效果如下图

 

不知道栈有什么用?可视化动图带你一步步讲解

至此,栈的实现原理讲解完毕

栈的优缺点

优点

  • 快速访问
  • 自动管理,不需要程序员管理
  • 空间被CPU高效管理,内存不会变成碎片

缺点

  • 只有局部变量
  • 受限于栈的大小(取决于操作系统)
  • 变量不能调整大小

栈的作用

  • 保存程序运行现场/上下文
  • 递归操作
  • 保存临时变量

效果展示

 

不知道栈有什么用?可视化动图带你一步步讲解

 

 

 

责任编辑:未丽燕 来源: 今日头条
相关推荐

2017-01-19 21:08:33

iOS路由构建

2019-03-05 14:09:27

Docker存储容器

2019-07-09 15:23:22

Docker存储驱动

2018-12-24 10:04:06

Docker存储驱动

2015-07-27 16:06:16

VMware Thin虚拟化

2010-03-04 16:28:17

Android核心代码

2016-11-02 18:54:01

javascript

2017-12-25 11:50:57

LinuxArch Linux

2011-05-10 10:28:55

2021-10-29 23:00:47

Windows 11Windows微软

2021-09-06 11:50:45

Windows 11Windows微软

2024-08-30 08:30:29

CPU操作系统寄存器

2024-09-30 09:56:59

2011-09-05 12:36:08

路由器限速linux路由器

2015-06-30 10:38:56

2024-11-18 00:16:54

TCP通讯包接收

2020-12-24 11:19:55

JavaMapHashMap

2018-06-11 15:30:12

2024-08-06 09:29:54

程序机器指令字符串

2017-01-06 15:13:25

LinuxVim源代码
点赞
收藏

51CTO技术栈公众号