棧,元素入棧時,是直接放到棧底,還是先放到棧頂

2021-03-03 21:27:11 字數 3183 閱讀 1403

1樓:匿名使用者

你把棧看成是一個堆放盤子的箱子,入棧就是往箱子中放盤子,即放在棧頂,出棧就像從箱子中取出盤子,也是從棧頂拿出。

2樓:飛冰魚

堆,列隊優先,先進先出。棧,先進後出!!望採納

為什麼說棧底元素總是最先被插入的元素,從而也是最後才能被刪除,不是說棧底不允許被插入刪除嗎

3樓:瘋狂夏風翼

你這句話沒有理解嗎?棧底元素總是最先被插入的元素,從而也是最後才能被刪除,這句話總該明白了?這時的棧底元素已經成為了棧頂元素,當然可以刪除了啊~~~

4樓:匿名使用者

棧底元素總是最先被插入的元素,從而也是最後才能被刪除

不是最後的那一個時不允許被插入刪除

5樓:聽不清啊

棧的插入和刪除操作,都是在棧頂進行的。

只有空棧時,才能在棧底插入元素;

只有在棧中僅剩一個元素時,才能在棧底刪除元素。

6樓:騰訊電腦管家

彈出一個棧頂元素,那麼棧頂高度自然就會減1。

先用一個變數儲存彈出的元素stack[topofstack],然後將棧頂高度topofstack減1.

7樓:dyx瀟酈平凡

因為棧只能在棧頂插入和刪除,當我們在棧頂連續執行插入時,棧底元素就會是我們剛剛第一個插入的元素(最早被插入的元素);當我們在棧頂連續不斷執行刪除時,棧底元素就會是我們最後刪除的元素(最後被刪除的元素)。

?不知道對不對

8樓:

在資料結構中,關於對堆疊(stack)的操作,一直都是這樣的:首先設定一個空棧、並設定一個棧頂指標,然後就可以根據程式的需要往裡面壓入一個(或者是多個)元素(即:壓棧操作),然後棧頂指標加 1,而出棧操作則相反:

最後入棧的元素首先彈出堆疊,棧頂指標減 1。

只要在對堆疊的操作進行越界的判斷(下溢、上溢的判斷是必須的),那麼插入、刪除就可以根據自己程式設計的需要進行控制。

9樓:匿名使用者

棧的限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。話中強調的是插入刪除時的先後問題。

棧底不允許被插入刪除這個說法不準確,棧按照先進後出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,與其說棧底不如說不允許在元素序列的中間插入和刪除元素,明白要點在**就好

10樓:匿名使用者

第一個「插入」的意思其實是放入,第二個「插入」是插隊的意思。堆疊不能插隊,只能逐個放入元素和取出元素,按你的表述,放入(push)=第一個「插入」,取出(pop)=「被刪除」。你要真正理解堆疊就要表述準確,很好理解的。

存入堆疊只有push操作,讀取堆疊資料可以用指標,程式設計裡很多使用pop操作時也會直接反饋出最後一個元素並且從堆疊中刪除它。

11樓:心妙

這裡的棧底元素和棧底不是一個概念。不用太糾結哈。

棧底元素指的是最接近棧底的元素,元素入棧過程是「堆疊指標先+1而後才有入棧」,因此不使用堆疊指標的初值,就像有一個底把元素們兜住了。

12樓:小小雨泡

可以去看看後進先出原則,具體還是要去查詢一下。

13樓:靳葉運碧萱

因為棧具有後進先出的性質,所以棧底的元素最先進棧。當元素依次進棧後,要刪除元素只有從棧頂開始,所以棧底元素最後被刪除。。。

14樓:匿名使用者

沒有不能刪除棧底這種說法,當棧的元素只剩一個的時候,棧頂也是棧底,出棧刪的是棧頂同時也是棧底,棧為空的時候插入的位置就是棧底

棧是什麼意思?

15樓:小小芝麻大大夢

棧,又名堆疊,它是一種運算

受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。

向一個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從一個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。

棧按照先進後出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料(最後一個資料被第一個讀出來)。棧具有記憶作用,對棧的插入與刪除操作中,不需要改變棧底指標。

16樓:匿名使用者

棧(stack)在電腦科學中是限定僅在表尾進行插入或刪除操作的線性表。 棧是一種資料結構,是只能在某一端插入和刪除的特殊線性表。它按照後進先出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料(最後一個資料被第一個讀出來)。

棧是允許在同一端進行插入和刪除操作的特殊線性表。允許進行插入和刪除操作的一端稱為棧頂(top),另一端為棧底(bottom);棧底固定,而棧頂浮動;棧中元素個數為零時稱為空棧。插入一般稱為進棧(push),刪除則稱為退棧(pop)。

棧也稱為後進先出表(lifo--last in first out表)。 棧可以用來在函式呼叫的時候儲存斷點,做遞迴時要用到棧!

上面已經說得很清楚了

雖然是複製的

17樓:暗影之王

棧(stack)又名堆疊,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。

向一個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從一個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。

棧作為一種資料結構,是一種只能在一端進行插入和刪除操作的特殊線性表。它按照先進後出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料(最後一個資料被第一個讀出來)。棧具有記憶作用,對棧的插入與刪除操作中,不需要改變棧底指標。

18樓:匿名使用者

要想清楚瞭解,你要研究:

1、棧的定義;

2、棧在記憶體中是怎樣使用的;

19樓:匿名使用者

20樓:匿名使用者

棧就像是排隊買東西一樣,先排的先買

棧的順序結構和入棧出棧演算法,棧的順序結構和入棧出棧演算法

typedef struct sqstack s.top e return ok 實現順序棧的入棧和出棧 include stdio.h include stdlib.h define stack init size 100 define stackincrement 10typedef struc...

分別寫函式實現初始化棧 入棧 出棧 判斷棧空 判斷棧滿。例如

1 初始化棧 功能 初始化棧 函式名 initstack 返回值 void void initstack stack p 2 判斷棧 功能 判斷棧為滿 函式名 isfull 返回值 為滿 真1,非滿 假0 bool isfull stack p else 3 判斷棧為空 功能 判斷棧為空 函式名 i...

組合語言呼叫子程式地址入棧出棧情況

子程式,應該稱為過程。定義過程的時候,有 遠 近 的區別。呼叫遠過程,就是段地址和偏移地址,都要入棧。組合語言中子程式呼叫需要哪些暫存器進棧 段內呼叫至少有ip,段間呼叫還有cs 1 一個包宣告抄 package statement,可選 襲 bai2 任意數量引入du語句zhi import st...