1楼:匿名用户
栈顶元素总是最后被抄插入,最先被删除的元素
在计算机领域,堆栈是一个不容忽视的概念,堆栈是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。
要点:堆,队列优先,先进先出。栈,先进后出(first-in/last-out)。
栈: 在函数调用时,第一个进栈的是主函数中函数调用后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的c编译器中,参数是由右往左入栈的,然后是函数中的局部变量。注意静态变量是不入栈的。
当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向最开始存的地址,也就是主函数中的下一条指令,程序由该点继续运行。
堆:一般是在堆的头部用一个字节存放堆的大小。堆中的具体内容有程序员安排。
为什么说栈底元素总是最先被插入的元素,从而也是最后才能被删除,不是说栈底不允许被插入删除吗
2楼:疯狂夏风翼
你这句话没有理解吗?栈底元素总是最先被插入的元素,从而也是最后才能被删除,这句话总该明白了?这时的栈底元素已经成为了栈顶元素,当然可以删除了啊~~~
3楼:匿名用户
栈底元素总是最先被插入的元素,从而也是最后才能被删除
不是最后的那一个时不允许被插入删除
4楼:听不清啊
栈的插入和删除操作,都是在栈顶进行的。
只有空栈时,才能在栈底插入元素;
只有在栈中仅剩一个元素时,才能在栈底删除元素。
5楼:腾讯电脑管家
弹出一个栈顶元素,那么栈顶高度自然就会减1。
先用一个变量保存弹出的元素stack[topofstack],然后将栈顶高度topofstack减1.
6楼:dyx潇郦平凡
因为栈只能在栈顶插入和删除,当我们在栈顶连续运行插入时,栈底元素就会是我们刚刚第一个插入的元素(最早被插入的元素);当我们在栈顶连续不断运行删除时,栈底元素就会是我们最后删除的元素(最后被删除的元素)。
不知道对不对
7楼:
在数据结构中,关于对堆栈(stack)的操作,一直都是这样的:首先设置一个空栈、并设置一个栈顶指针,然后就可以根据程序的需要往里面压入一个(或者是多个)元素(即:压栈操作),然后栈顶指针加 1,而出栈操作则相反:
最后入栈的元素首先弹出堆栈,栈顶指针减 1。
只要在对堆栈的操作进行越界的判断(下溢、上溢的判断是必须的),那么插入、删除就可以根据自己编程的需要进行控制。
8楼:匿名用户
栈的限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。话中强调的是插入删除时的先后问题。
栈底不允许被插入删除这个说法不准确,栈按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,与其说栈底不如说不允许在元素序列的中间插入和删除元素,明白要点在**就好
9楼:匿名用户
第一个“插入”的意思其实是放入,第二个“插入”是插队的意思。堆栈不能插队,只能逐个放入元素和取出元素,按你的表述,放入(push)=第一个“插入”,取出(pop)=“被删除”。你要真正理解堆栈就要表述准确,很好理解的。
存入堆栈只有push操作,读取堆栈数据可以用指针,编程里很多使用pop操作时也会直接反馈出最后一个元素并且从堆栈中删除它。
10楼:心妙
这里的栈底元素和栈底不是一个概念。不用太纠结哈。
栈底元素指的是最接近栈底的元素,元素入栈过程是“堆栈指针先+1而后才有入栈”,因此不使用堆栈指针的初值,就像有一个底把元素们兜住了。
11楼:小小雨泡
可以去看看后进先出原则,具体还是要去查询一下。
12楼:靳叶运碧萱
因为栈具有后进先出的性质,所以栈底的元素最先进栈。当元素依次进栈后,要删除元素只有从栈顶开始,所以栈底元素最后被删除。。。
13楼:匿名用户
没有不能删除栈底这种说法,当栈的元素只剩一个的时候,栈顶也是栈底,出栈删的是栈顶同时也是栈底,栈为空的时候插入的位置就是栈底
弹出栈元素不就是删除一个元素吗..第三行到第四行为了到减一又是什么意思啊
14楼:gta小鸡
弹出一个栈顶元素,那么栈顶高度自然就会减1。
先用一个变量保存弹出的元素stack[topofstack],然后将栈顶高度topofstack减1.
15楼:
你这句话没有理解吗?栈底元素总是最先被插入的元素,从而也是最后才能被删除,这句话总该明白了?这时的栈底元素已经成为了栈顶元素,当然可以删除了啊~~~
栈是什么意思?
16楼:小小芝麻大大梦
栈,又名堆栈,它是一种运算
受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。
向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
栈按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。
17楼:匿名用户
栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。 栈是一种数据结构,是只能在某一端插入和删除的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(push),删除则称为退栈(pop)。
栈也称为后进先出表(lifo--last in first out表)。 栈可以用来在函数调用的时候存储断点,做递归时要用到栈!
上面已经说得很清楚了
虽然是复制的
18楼:暗影之王
栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。
向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。
19楼:匿名用户
要想清楚了解,你要研究:
1、栈的定义;
2、栈在内存中是怎样使用的;
20楼:匿名用户
http://baike.baidu.***/view/38877.htm?fr=ala0_1
21楼:匿名用户
栈就像是排队买东西一样,先排的先买