看圖輕鬆理解數據結構與算法系列(基於數組的棧)

前言

推出一個新系列,《看圖輕鬆理解數據結構和算法》,主要使用圖片來描述常見的數據結構和算法,輕鬆閱讀並理解掌握。本系列包括各類堆、各類隊列、各類列表、各類樹、各類圖、各類排序等等幾十篇的樣子。mysql

棧是一種線性存儲結構且運算受限的線性表,它的插入和刪除運算操做被限制在表的一端,該端稱爲棧頂,而另一端則稱爲棧底。算法

棧中的數據之後進先出(Last In First Out 即LIFO)方式進出棧。sql

棧的實現

棧的實現方式有多種方式,主要是使用不一樣的結構來存儲棧元素,好比使用數組、單向鏈表、雙向列表等。這裏看數組方式的實現。數組

實現的主要三要素是數組、當前棧頂下標以及棧操做集。數組用於存放元素,當前棧頂下標用於指引操做的位置,棧核心操做爲push和pop,即進棧和出棧。棧存放的元素不能超過數組的長度。網絡

image

push

"the","monster","is","coming"四個字符串分別進行 push 操做,數據結構

image

image

image

image

pop

對棧中進行兩次 pop 操做,併發

image

image

-------------推薦閱讀------------機器學習

個人開源項目彙總(機器&深度學習、NLP、網絡IO、AIML、mysql協議、chatbot)數據結構和算法

爲何寫《Tomcat內核設計剖析》學習

個人2017文章彙總——機器學習篇

個人2017文章彙總——Java及中間件

個人2017文章彙總——深度學習篇

個人2017文章彙總——JDK源碼篇

個人2017文章彙總——天然語言處理篇

個人2017文章彙總——Java併發篇


跟我交流,向我提問:

歡迎關注:

相關文章
相關標籤/搜索