前言
推出一個新系列,《看圖輕鬆理解資料結構和演算法》,主要使用圖片來描述常見的資料結構和演算法,輕鬆閱讀並理解掌握。本系列包括各種堆、各種佇列、各種列表、各種樹、各種圖、各種排序等等幾十篇的樣子。
棧
棧是一種線性儲存結構且運算受限的線性表,它的插入和刪除運算操作被限制在表的一端,該端稱為棧頂,而另外一端則稱為棧底。
棧中的資料以後進先出(Last In First Out 即LIFO)方式進出棧。
棧的實現
棧的實現方式有多種方式,主要是使用不同的結構來儲存棧元素,比如使用陣列、單向連結串列、雙向列表等。這裡看陣列方式的實現。
實現的主要三要素是陣列、當前棧頂下標以及棧操作集。陣列用於存放元素,當前棧頂下標用於指引操作的位置,棧核心操作為push和pop,即進棧和出棧。棧存放的元素不能超過陣列的長度。
push
將 "the","monster","is","coming"
四個字串分別進行 push 操作,
pop
對棧中進行兩次 pop 操作,
-------------推薦閱讀------------
我的開源專案彙總(機器&深度學習、NLP、網路IO、AIML、mysql協議、chatbot)
跟我交流,向我提問:
歡迎關注: