C語言 鏈棧

2021-10-13 12:50:30 字數 1262 閱讀 9117

和單鏈表相似,結點結構相同,

不同點是單鏈表從頭結點指向下乙個結點

鏈棧則相反,是棧頂結點指向棧底結點

只能在棧頂執行插入和刪除操作。

入棧示意圖

("返回棧頂元素:%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 鏈棧的節點...