Stack 是種處理資料流的資料結構。
當資料流處理時,具備後進先出這樣的順序時。就可以使用 Stack。
著名題目河內塔(Hanoi Tower)
如下:
要把 3 個穿孔的圓盤從最左邊藍色柱子移動到最右邊紅色柱子
且必須符合以下兩個規則:
一次只能移動一個圓盤
較大的圓盤只能放在較小的圓盤之下
可以發現每個每個柱子都具有 Stack 特性
因為都放入都必須從下而上,而拿取必須由上而下。
最後放入的必須要最先拿出,符合後進先出特性。
另一個經典問題是 Reverse Polish Notation
Reverse Polish Notation 是種把運算元放在運算子之前的作法
因為運算子放在最後,其解析方式也是需要使用 Stack 特性。
最後放入最先解析。
具體如下: