Stack的實作 — C++

Sharon Peng
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?

流程:

  1. 我們要先建立一個名為Stack的class

2. 再依照我們的需求去建立裡面的函式(function)

比較詳細的說明都在下面的程式碼中,比較需要注意的地方是,前置運算跟後置運算的部分。

以下為程式碼:

相對於Queue的建置,Stack是比較簡單的。

如果慢慢讀懂這個程式碼,應該很快就能理解了!

希望這次的解說對各位有所幫助。

--

--

Sharon Peng
Sharon Peng

Written by Sharon Peng

一起精進程式能力吧!!

No responses yet