Stack(計算機科學中是一種數據結構)

Stack(計算機科學中是一種數據結構)

本詞條是多義詞,共2個義項
更多義項 ▼ 收起列表 ▲

棧(stack)在計算機科學中是限定僅在表尾進行插入或刪除操作的線性表。棧是一種數據結構,它按照後進先出的原則存儲數據,先進入的數據被壓入棧底,最後的數據在棧頂,需要讀數據的時候從棧頂開始彈出數據。棧是只能在某一端插入和刪除的特殊線性表。用桶堆積物品,先堆進來的壓在底下,隨後一件一件往上堆。取走時,只能從上面一件一件取。讀和取都在頂部進行,底部一般是不動的。棧就是一種類似桶堆積物品的數據結構,進行刪除和插入的一端稱棧頂,另一端稱棧底。插入一般稱為進棧,刪除則稱為退棧。 棧也稱為後進先出表。

基本介紹

  • 中文名:棧
  • 外文名:Stack
  • 性質:計算機科學中是一種數據結構
  • 解釋:古代用竹木條橫排編成車箱的車子
  • 其他意義:姓氏
進棧算法,退棧算法,字典,英語,適配器,

進棧算法

①若TOP≥n時,則給出溢出信息,作出錯處理(進棧前首先檢查棧是否已滿,滿則溢出;不滿則作②);
②置TOP=TOP+1(棧指針加1,指向進棧地址);
③S(TOP)=X,結束(X為新進棧的元素);

退棧算法

①若TOP≤0,則給出下溢信息,作出錯處理(退棧前先檢查是否已為空棧, 空則下溢;不空則作②);
②X=S(TOP),(退棧後的元素賦給X);
③TOP=TOP-1,結束(棧指針減1,指向棧頂)。
棧可以用來在函式調用的時候存儲斷點,做遞歸時要用到棧!

字典

inn; shed; warehouse;
(1)
zhàn
(2)
(形聲。從木,戔(jiān)聲。本義:牲口棚)
(3)
同本義 [shed]
棧,棚也。――《說文》。按,柵者,豎編之,棚者,橫編之。
埋之馬棧之下。――《戰國策·齊策
馬棧最難。――《管子·小問》
編之以皁棧。――《莊子·馬蹄》。崔注:“木棚也。”
斃於內棧。――顏延之《赭白馬賦》
駑馬戀棧豆。――《晉書·宣帝紀》
四牆其社,覆上棧下,示不得通。――《漢書》
(4)
又如:皂棧(馬房中的柵欄和方格木條)
(5)
古代用竹木條橫排編成車箱的輕便車子
棧,竹木之車曰棧。――《說文》
有棧之車。――《詩·小雅·何草不黃》
車乘棧車。――《周禮·巾車》
賓奠幣於棧左。――《儀禮·既夕禮》
(6)
又如:棧車(棧輿。古代用竹木條編成車箱的車,不蒙皮革);棧軫(指編排竹木條而成的車箱,不蒙皮革);棧輿馬(陋車劣馬。後用為居官清廉儉樸的典實)
(7)
棧道[plank road built along the face of a cliff]
棧道千里,通於蜀漢。――《戰國策·秦策》
復從峽度棧以上。――《徐霞客遊記·游黃山記》
(8)
又如:棧山(以棧為道跋越高山);棧山航海(謂跋山涉水,逾越險阻);棧谷(架設棧道以跨越山谷);棧徑(棧道);棧雲(謂棧道高與雲連);棧路(棧道)
(9)
留宿客商或儲存貨物的房屋 [warehouse;storehouse]。如:棧使(客棧的僕役);棧伙(舊時稱店員或旅店的夥計);棧租(租借棧房的錢);棧貨(指已運到並進入倉庫的貨物);棧閣(存放東西的屋子);棧師(舊稱店堂、倉庫里工作的職員);羊棧;棧豆(馬記豆料);棧駒(飼養於廄中的馬駒)
(10)
(1)
zhàn
(2)
[在棧內] 加料精養 [fee]
(3)
又如:棧羊(在圈內加料精養的肥羊);棧鹿(在棧內加料精養的鹿)
棧道
zhàndào
[a plank road built along the face of a cliff] 在懸崖絕壁上鑿孔架木而成的窄路
zhànfáng
(1)
[warehouse; storehouse]∶倉庫,貨棧
(2)
[方]∶客棧;旅店
zhànqiáo
[landing stage] 形狀像橋的建築物,建在車站、港口、礦山或工廠,用於裝卸貨物或上下旅客
(棧)
zhàn ㄓㄢˋ
(1)
儲存貨物或供旅客住宿的房屋:貨~。客~。~房。
(2)
竹木編成的遮蔽物或其他東西:馬~(養馬的竹木棚)。~車(古代用竹木編成棚的車子)。
(3)
用木料或其他材料架設的通道:~道。~橋(一種形似橋樑的建築物,用於裝卸貨物、上下旅客等)。
(4)
通過,越過:~山航海。
鄭碼:FHM,U:6808,GBK:D5BB
筆畫數:9,部首:木,筆順編號:123411534
inn;shed;warehouse;
堆疊(Stack)
棧是允許在同一端進行插入和刪除操作的特殊線性表。允許進行插入和刪除操作的一端稱為棧頂(top),另一端為棧底(bottom);棧底固定,而棧頂浮動;棧中元素個數為零時稱為空棧。棧結構也稱為後進先出表(LIFO)。

英語

1.a warehouse; a storehouse
3.a shed; a pen
棧的演示算法
主要算法代碼(c++實現):
public void push(int val){
s[++tos]=val;
}
public void pop(){
if(!isEmpty()) tos--;
}
public int top(){
return s[tos];
}
public boolean isEmpty(){
return (tos==-1)? true:false;
}

適配器

#include<stack>頭檔案,STL中的很有用的容器適配器之一,默認基於Deque容器實現,可以在定義時覆蓋其默認容器類型,但一般並不需要。
包含以下幾個成員函式:
empty() 堆疊為空則返回真
pop() 移除棧頂元素(不會返回棧頂元素的值)
push() 在棧頂增加元素
size() 返回棧中元素數目
top() 返回棧頂元素

相關詞條

熱門詞條

聯絡我們