栈,是数据结构设计中的最重要的思想之一,但是我疑惑的是为什么先进的元素反而要后出。

要是在生活中我们也是按照栈的规则来排顺序,这个世界岂不是乱了套了,试想你去银行排队取钱,明明你是第一个去,却等到晚上晚上银行人员快下班了你才最后处理完业务,恐怕你早就跟人干起来了。

对于此,我的老师给过一个解释:在编码的过程中,程序自上而下执行,嵌套越深的变量被出栈之后对程序的影响越小,嵌套越浅的变量(如全局变量)是不能轻易将数据从堆栈中取出的。

我的老师这个解释自然是对的,但是我之前有看到吴军老师一篇文章中有从另外角度的解释,不过当时没有记录下来,现在想不起来了,等我有时间再去找找吧。

数据结构中为什么要把栈设计为先进后出?相关推荐

  1. 什么是内存中的堆和栈?与数据结构中的堆和栈有什么区别?

    内存中的堆和栈 一直使用堆和栈的相关概念,对内存中(操作系统)中的堆与栈和数据结构中的堆与栈一直不求甚解,这次,突然想起这个问题,在此进行一个简单梳理归纳,如有错误,恳请读者指出. 栈(stack) ...

  2. 数据结构中堆、栈和队列的理解

    一.堆 堆是一种经过排序的树形数据结构,每个节点都有一个值,通常我们所说的堆的数据结构是指二叉树.所以堆在数据结构中通常可以被看做是一棵树的数组对象.而且堆需要满足一下两个性质: (1)堆中某个节点的 ...

  3. 堆(概念,数据结构中堆与内存堆区的区别 ,堆的基本操作)

    堆的特性: 必须是完全二叉树 用数组实现 任一结点的值是其子树所有结点的最大值或最小值 最大值时,称为"最大堆",也称大根堆: 在完全二叉树中,任何一个子树的最大值都在这个子树的根 ...

  4. 初始化栈的代码_数据结构中的栈,你知道多少?

    由于栈比较简单,也很容易理解,学过的人都知道一句话就可以描述栈的特性:后进先出.所以这篇文章主要是写如何使用代码来描述栈,当然也是让大家很容易理解的语言.还是先给出这篇文章的大致脉络. 首先,对栈有一 ...

  5. c++数据结构中 顺序队列的队首队尾_用队列实现栈,用栈实现队列,听起来有点绕,都搞懂了就掌握了精髓

    一.背景 栈和队列是数据结构中最常用到的两种结构,有非常广泛的运用,该篇文章将通过动画的手段,展示栈和队列相互实现的底层原理,让我们真正搞懂栈和队列的特性. 二.概念 2.1 栈 栈[Stack]:是 ...

  6. 数据结构括号匹配代码_数据结构中的栈,你知道多少?

    由于栈比较简单,也很容易理解,学过的人都知道一句话就可以描述栈的特性:后进先出.所以这篇文章主要是写如何使用代码来描述栈,当然也是让大家很容易理解的语言.还是先给出这篇文章的大致脉络. 首先,对栈有一 ...

  7. Kiner算法刷题记(十四):数据结构中的“渣男”——单调栈(数据结构基础篇)

    系列文章导引 系列文章导引 开源项目 本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star. GitHub传送门:Kiner算法算题记 知识回顾 我们之前讨论过单调队列,知 ...

  8. 图解:数据结构中的6种「树」,柠檬问你心中有数吗?

    数据结构这门课程是计算机相关专业的基础课,数据结构指的是数据在计算机中的存储.组织方式. 我们在学习数据结构时候,会遇到各种各样的基础数据结构,比如堆栈.队列.数组.链表.树...这些基本的数据结构类 ...

  9. react 递归遍历四层树结构 遍历分支中的最后一个节点_图解:数据结构中的 6 种树,你心中有数吗?...

    (给算法爱好者加星标,修炼编程内功) 来源:LemonCoder/后端技术学堂(本文来自作者投稿) 数据结构这门课程是计算机相关专业的基础课,数据结构指的是数据在计算机中的存储.组织方式. 我们在学习 ...

最新文章

  1. 想学python有什么用-学python日常工作有什么用?
  2. Redis基本数据类型1--String
  3. java returnaddress,JVM之数据类型
  4. vim block vim_我如何学会爱Vim
  5. HTML5_2(视频)
  6. delphi 读取pdf
  7. Perlin noise(一)
  8. vue:ali 阿里矢量图库 ico
  9. 流量计算机常见故障,流量计40个常见故障、处理方法!多数人看完就收藏
  10. android menu 键值,Android KeyCode安卓手机按键对应键码键值
  11. unhandled system error, NCCL version 2.7.8
  12. 计算机连共享盘被禁止用户,共享文件夹无法访问、设置文件夹访问权限、共享文件夹拒绝访问的解决方法...
  13. SpingBoot—微服务初始化资源方法
  14. 百度地图API批量地址转坐标(支持Excel上传,附案例)
  15. uni-app 第三讲拍照和选择图库功能实现
  16. 正则表达式如何匹配空格
  17. DAY25:逻辑漏洞复现
  18. 图形化编程实现模块化和面向对象编程
  19. 2020年Android开发年终总结之如何挤进一线大厂?(1),androidapp开发工具
  20. php dropzone.js中文教程,使用Dropzone.js上传的示例代码

热门文章

  1. ffmpeg将文件夹中的一批图片转成视频
  2. 【软考学习5】流水线基本概念、周期执行时间、吞吐率、加速比和效率的计算
  3. Spyder自动换行
  4. 从pyh看Python的工厂模式
  5. Inno Setup 是什么?
  6. python:合唱队
  7. 开放式基金净值历史数据 API 数据接口
  8. ck竞技之王显示服务器连接失败,王国保卫战无法连接服务器是什么原因
  9. Shallow-Deep Networks: Understanding and Mitigating Network Overthinking
  10. pop3协议的几种状态