和單鏈表相似,結點結構相同,
不同點是單鏈表從頭結點指向下乙個結點
鏈棧則相反,是棧頂結點指向棧底結點。
只能在棧頂執行插入和刪除操作。
入棧示意圖
("返回棧頂元素:%d\n"
,gettop()
);//呼叫析構函式
delelinkstack()
;while
(true)
else
}return0;
}//建構函式,初始化乙個空棧鏈
void
linkstack()
//入棧
void
push
(int x)
//取棧頂元素(並不刪除)
elemtype gettop()
//出棧操作,將棧頂元素彈出
elemtype pop()
//判斷棧是否為空
intempty()
//析構函式,釋放鏈棧各結點的儲存空間
void
delelinkstack()
}執行結果
1、初始化空棧->入棧->返回棧頂元素->出棧
C語言鏈棧實現
和順序棧不同的是,鏈棧使用鍊錶去儲存棧元素,由於鍊錶中的元素位址不連續,所以無需事先知道棧的最大儲存容量,需要的時候動態開闢就是了。因此,鏈棧中,維護棧結構就只有棧底和棧頂兩個指標。鏈棧的基本操作實際都是鍊錶的插入 刪除 遍歷操作,實現起來較容易。具體功能如下 include include inc...
C語言實現鏈棧
鏈棧顧名思義,採用鍊錶實現,其優點是不存在棧滿上溢位的情況,其操作都是在頭結點之後進行的,入棧類似與頭插法建立鍊錶。注意頭結點與棧頂節點的區別,在沒有元素入棧時,棧僅有初始化的乙個頭結點,判斷其是否為空只需判斷s next是否為null。下面用c語言 實現了鏈棧的基本操作 執行環境 vs2017 執...
C語言實現鏈棧
不多說,直接上 include include define max 100 define ok 1 define error 1 define stack size 100 typedef int elemtype 資料庫 elemtype data 5 elemtype number 鏈棧的節點...