Stack的實作 — C++
2 min readSep 15, 2020
這次要提到的是stack實作的部分。
先提一下什麼叫做Stack好了,他是一種資料結構,並且具有Last In First Out(LIFO)的特性。
什麼是LIFO?
我們以下面的圖來舉例。
如果今天餐廳有很多堆疊起來的盤子,當服務生要拿盤子時,一定會從最上面的部分來拿,不會從下面開始拿;反之,而最先放進去的盤子,一定會最後才拿出來。也就符合我們所說的「後進先出」(Last In First Out)或是「先進後出」也都可以,先放進去的盤子會最後才拿出來。
在程式碼中,
就是先丟進去stack的值,會最晚拿出來。
最晚丟進stack的值,會最先拿出來。
那在C++中,要怎麼使用stack呢?
很簡單,因為C++中,stack只會用到幾個常用的函式:
push():把新的資料放到 stack裡面。
pop():把最上面的那個資料丟出來,沒有回傳值。
isEmpty():檢查此 stack裡面是否沒有任何元素。
top():回傳最上面的 element。
size(): 回傳此 stack裡面有幾個元素。
更多詳細的介紹可以點這裡
已經介紹完這麼多了,我們現在就要進入今天的重點,要怎麼用array去建立一個stack?
流程:
- 我們要先建立一個名為Stack的class
2. 再依照我們的需求去建立裡面的函式(function)
比較詳細的說明都在下面的程式碼中,比較需要注意的地方是,前置運算跟後置運算的部分。
以下為程式碼:
相對於Queue的建置,Stack是比較簡單的。
如果慢慢讀懂這個程式碼,應該很快就能理解了!
希望這次的解說對各位有所幫助。