数据结构中为什么要把栈设计为先进后出?
栈,是数据结构设计中的最重要的思想之一,但是我疑惑的是为什么先进的元素反而要后出。
要是在生活中我们也是按照栈的规则来排顺序,这个世界岂不是乱了套了,试想你去银行排队取钱,明明你是第一个去,却等到晚上晚上银行人员快下班了你才最后处理完业务,恐怕你早就跟人干起来了。
对于此,我的老师给过一个解释:在编码的过程中,程序自上而下执行,嵌套越深的变量被出栈之后对程序的影响越小,嵌套越浅的变量(如全局变量)是不能轻易将数据从堆栈中取出的。
我的老师这个解释自然是对的,但是我之前有看到吴军老师一篇文章中有从另外角度的解释,不过当时没有记录下来,现在想不起来了,等我有时间再去找找吧。
数据结构中为什么要把栈设计为先进后出?相关推荐
- 什么是内存中的堆和栈?与数据结构中的堆和栈有什么区别?
内存中的堆和栈 一直使用堆和栈的相关概念,对内存中(操作系统)中的堆与栈和数据结构中的堆与栈一直不求甚解,这次,突然想起这个问题,在此进行一个简单梳理归纳,如有错误,恳请读者指出. 栈(stack) ...
- 数据结构中堆、栈和队列的理解
一.堆 堆是一种经过排序的树形数据结构,每个节点都有一个值,通常我们所说的堆的数据结构是指二叉树.所以堆在数据结构中通常可以被看做是一棵树的数组对象.而且堆需要满足一下两个性质: (1)堆中某个节点的 ...
- 堆(概念,数据结构中堆与内存堆区的区别 ,堆的基本操作)
堆的特性: 必须是完全二叉树 用数组实现 任一结点的值是其子树所有结点的最大值或最小值 最大值时,称为"最大堆",也称大根堆: 在完全二叉树中,任何一个子树的最大值都在这个子树的根 ...
- 初始化栈的代码_数据结构中的栈,你知道多少?
由于栈比较简单,也很容易理解,学过的人都知道一句话就可以描述栈的特性:后进先出.所以这篇文章主要是写如何使用代码来描述栈,当然也是让大家很容易理解的语言.还是先给出这篇文章的大致脉络. 首先,对栈有一 ...
- c++数据结构中 顺序队列的队首队尾_用队列实现栈,用栈实现队列,听起来有点绕,都搞懂了就掌握了精髓
一.背景 栈和队列是数据结构中最常用到的两种结构,有非常广泛的运用,该篇文章将通过动画的手段,展示栈和队列相互实现的底层原理,让我们真正搞懂栈和队列的特性. 二.概念 2.1 栈 栈[Stack]:是 ...
- 数据结构括号匹配代码_数据结构中的栈,你知道多少?
由于栈比较简单,也很容易理解,学过的人都知道一句话就可以描述栈的特性:后进先出.所以这篇文章主要是写如何使用代码来描述栈,当然也是让大家很容易理解的语言.还是先给出这篇文章的大致脉络. 首先,对栈有一 ...
- Kiner算法刷题记(十四):数据结构中的“渣男”——单调栈(数据结构基础篇)
系列文章导引 系列文章导引 开源项目 本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star. GitHub传送门:Kiner算法算题记 知识回顾 我们之前讨论过单调队列,知 ...
- 图解:数据结构中的6种「树」,柠檬问你心中有数吗?
数据结构这门课程是计算机相关专业的基础课,数据结构指的是数据在计算机中的存储.组织方式. 我们在学习数据结构时候,会遇到各种各样的基础数据结构,比如堆栈.队列.数组.链表.树...这些基本的数据结构类 ...
- react 递归遍历四层树结构 遍历分支中的最后一个节点_图解:数据结构中的 6 种树,你心中有数吗?...
(给算法爱好者加星标,修炼编程内功) 来源:LemonCoder/后端技术学堂(本文来自作者投稿) 数据结构这门课程是计算机相关专业的基础课,数据结构指的是数据在计算机中的存储.组织方式. 我们在学习 ...
最新文章
- 想学python有什么用-学python日常工作有什么用?
- Redis基本数据类型1--String
- java returnaddress,JVM之数据类型
- vim block vim_我如何学会爱Vim
- HTML5_2(视频)
- delphi 读取pdf
- Perlin noise(一)
- vue:ali 阿里矢量图库 ico
- 流量计算机常见故障,流量计40个常见故障、处理方法!多数人看完就收藏
- android menu 键值,Android KeyCode安卓手机按键对应键码键值
- unhandled system error, NCCL version 2.7.8
- 计算机连共享盘被禁止用户,共享文件夹无法访问、设置文件夹访问权限、共享文件夹拒绝访问的解决方法...
- SpingBoot—微服务初始化资源方法
- 百度地图API批量地址转坐标(支持Excel上传,附案例)
- uni-app 第三讲拍照和选择图库功能实现
- 正则表达式如何匹配空格
- DAY25:逻辑漏洞复现
- 图形化编程实现模块化和面向对象编程
- 2020年Android开发年终总结之如何挤进一线大厂?(1),androidapp开发工具
- php dropzone.js中文教程,使用Dropzone.js上传的示例代码