簡介
棧的構成
棧的實作
使用數組來實作棧
使用動态數組來實作棧
使用連結清單來實作
棧應該是一種非常簡單并且非常有用的資料結構了。棧的特點就是先進後出filo或者後進先出lifo。
實際上很多虛拟機的結構都是棧。因為棧在實作函數調用中非常的有效。
今天我們一起來看學習一下棧的結構和用法。
棧一種有序的線性表,隻能在一端進行插入或者删除操作。這一端就叫做top端。
定義一個棧,我們需要實作兩種功能,一種是push也就是入棧,一種是pop也就是出棧。
當然我們也可以定義一些其他的輔助功能,比如top:擷取棧上最頂層的節點。isempty:判斷棧是否為空。isfull:判斷棧是否滿了之類。
先看下入棧的動畫:
再看下出棧的動畫:
具有這樣功能的棧是怎麼實作呢?
一般來說棧可以用數組實作,也可以用連結清單來實作。