複製鏈接
請複製以下鏈接發送給好友

出棧

(計算機術語)

鎖定
出棧指一種計算機術語,與其相對應的是進棧;進棧、出棧多是按照一定順序的。
中文名
出棧
外文名
pop
應    用
棧的操作(出棧、入棧)
相    關
數據結構

出棧計算機術語

多用於計算機,與其相對應的是進棧;進棧、出棧多是按照一定順序的
例如:有一個數列(23,45,3,7,3,945)
我們先對其進行進棧操作,則進棧順序為:23,45,3,7,3,945
我們在對其進行出棧操作,則出棧順序為:945,3,7,3,45,23
為了方便,我們通常做到:出棧後不再進棧。
進棧出棧就像一個盒子,先一個個放入盒內,而拿出的時候只有先從上面拿,才能再拿下面。
棧(stack)又名堆棧,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。向一個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從一個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。

出棧棧基本概念

棧作為一種數據結構,是一種只能在一端進行插入和刪除操作的特殊線性表。它按照先進後出的原則存儲數據,先進入的數據被壓入棧底,最後的數據在棧頂,需要讀數據的時候從棧頂開始彈出數據(最後一個數據被第一個讀出來)。棧具有記憶作用,對棧的插入與刪除操作中,不需要改變棧底指針
棧是允許在同一端進行插入和刪除操作的特殊線性表。允許進行插入和刪除操作的一端稱為棧頂(top),另一端為棧底(bottom);棧底固定,而棧頂浮動;棧中元素個數為零時稱為空棧。插入一般稱為進棧(PUSH),刪除則稱為出棧(POP)。棧也稱為後進先出表。
計算機系統中,棧則是一個具有以上屬性的動態內存區域。程序可以將數據壓入棧中,也可以將數據從棧頂彈出。在i386機器中,棧頂由稱為esp的寄存器進行定位。壓棧的操作使得棧頂的地址減小,彈出的操作使得棧頂的地址增大。
棧在程序的運行中有着舉足輕重的作用。最重要的是棧保存了一個函數調用時所需要的維護信息,這常常稱之為堆棧幀或者活動記錄堆棧幀一般包含如下幾方面的信息:
1.函數的返回地址和參數
2. 臨時變量:包括函數的非靜態局部變量以及編譯器自動生成的其他臨時變量。

出棧棧基本操作

1.進棧(PUSH)
①若TOP≥n時,則給出溢出信息,作出錯處理(進棧前首先檢查棧是否已滿,滿則溢出;不滿則作②);
②置TOP=TOP+1(棧指針加1,指向進棧地址);
③S(TOP)=X,結束(X為新進棧的元素);
2.出棧(POP)
①若TOP≤0,則給出下溢信息,作出錯處理(退棧前先檢查是否已為空棧, 空則下溢;不空則作②);
②X=S(TOP),(退棧後的元素賦給X):
③TOP=TOP-1,結束(棧指針減1,指向棧頂)。