我看了下面的文章,感觉还是不太理解:
************************************************
堆栈是一种执行“后进先出”算法的数据结构。
设想有一个直径不大、一端开口一端封闭的竹筒。有若干个写有编号的小球,小球的直径比竹筒的直径略小。现在把不同编号的小球放到竹筒里面,可以发现一种规律:先放进去的小球只能后拿出来,反之,后放进去的小球能够先拿出来。所以“先进后出”就是这种结构的特点。
堆栈就是这样一种数据结构。它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是“压入——push”)这个区域之中。有一个地址指针总指向最后一个压入堆栈的数据所在的数据单元,存放这个地址指针的寄存器就叫做堆栈指示器。开始放入数据的单元叫做“栈底”。数据一个一个地存入,这个过程叫做“压栈”。在压栈的过程中,每有一个数据压入堆栈,就放在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自动加1。读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减 1。这个过程叫做“弹出pop”。如此就实现了后进先出的原则。
堆栈是计算机中最常用的一种数据结构,比如函数的调用在计算机中是用堆栈实现的。
堆栈可以用数组存储,也可以用以后会介绍的链表存储。
下面是一个堆栈的结构体定义,包括一个栈顶指针,一个数据项数组。栈顶指针最开始指向-1,然后存入数据时,栈顶指针加1,取出数据后,栈顶指针减1。
#define MAX_SIZE 100
typedef int DATA_TYPE;
struct stack
{
DATA_TYPE data[MAX_SIZE];
int top;
};
**********************************************
就上面的文章我提以下几个问题:
1、不理解上面提到“函数的调用”为什么是用堆栈实现的
2、我能理解堆栈先进后出后进先出的原理,不明白这样的用意何在
3、我能看懂作者子下面那段程序,但不懂这和堆栈有什么联系
什么是堆栈及堆栈的作用是什么
在计算机领域,堆栈是一个不容忽视的概念,堆栈是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。要点:堆,队列优先,先进先出 。栈,先进后...
什么是堆栈?堆栈有什么用途?
类似于队列,堆栈是个简单的数据存储结构。堆栈中数据进出的顺序很重要,举个例子,餐厅的盘子堆,盘子洗完要堆到上面,而不是插到下面的某个位置(相信不会有人那么做)。当厨师要用到盘子时从最上面的开始拿。即最先放在堆里的盘子会被最后一个用到。定义:堆栈就是只能在一端插入和删除数据的链...
在单片机中什么是堆栈?它的作用是什么?
堆栈的作用主要表现在以下几个方面:1. 保存临时数据:在执行某些操作,如函数调用时,会产生临时数据。这些数据需要安全存储,以便后续使用或返回。堆栈能够存储这些数据片段,确保它们在需要时可用。2. 保存返回地址:当单片机执行函数调用时,堆栈还会保存程序的返回地址。这是程序执行完某个函数后回到正确...
在单片机中什么是堆栈?它的作用是什么?
在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。在计算机领域,堆栈是一个不容忽视的概念,堆栈是一种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。堆栈是一个特定的存储区或寄存器,它的一端...
堆栈的意思和作用
堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。堆栈的词语解释是:堆栈duīzhàn。(1)临时寄存货物的地方。堆栈的词语解释是:堆栈duīzhàn。(1)临时寄存货物的地方。词性是:名词。注音是:ㄉㄨㄟㄓㄢ_。拼音是:duīzhàn。结构是:堆(左右结构)栈(左右结构)。
什么是堆栈?堆栈有何作用?
要说用处,那就是在写代码的时候,有时数据存取肯定是要有规定的顺序的,这个是你自己规定的,然后按照你所写程序的用处的特点来用堆还是栈还是队列之类的顺序 追问: 程序设计时,为什么要对堆栈指针SP重新赋值? 回答: 这不是初始化嘛堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来...
什么是堆栈?是否可以通过堆栈提升图片质量?
堆栈(Stacking)是一种图像处理技术,常用于将多个图像合成一个,以提高像素数量、增强图像清晰度和对比度,减少噪点。照片确实可通过堆栈提升质量,通过叠加多张图像,合并信息来创建更高像素的图像。堆栈能提高像素数量,但并非所有照片都适用。基础照片需曝光准确、对焦清晰,堆栈技术方能发挥最大效果。堆...
python中为什么要讲堆栈
1、因为堆栈是Python中处理数据不可或缺的一部分。2、栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以...
什么是堆栈
1. 数据结构特点:堆栈是一个线性结构,只允许在一端进行元素的添加和移除操作。这种限制使得堆栈的操作相对简单且高效。2. 后进先出原则:由于遵循后进先出的原则,堆栈在存储和取出元素时具有特定的顺序。新添加的元素会放在栈顶,而访问或移除元素也总是从栈顶开始。这种特性使得堆栈在处理一些需要严格...
堆,栈,堆栈这三个有什么区别
1、栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放;2、堆是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些。三、堆栈数据结构区别:堆(数据结构):堆可以被看成是一棵树,如:...