Chapter 2 棧和佇列
1- 棧
當n個元素以某順序進棧,可在任意時刻出棧,元素排列的順序N滿足Catalan()規則:
常用操作:
1 棧的初始化和定義:
2 元素x進棧:
3 元素x出棧:
2- 迴圈佇列的操作(兩個狀態和兩個操作)
狀態:
1 隊空:
2 隊滿:
操作:
1 進隊:
2 出隊:
3- 共享棧
//為了提高記憶體利用率和減少溢位而設計
4- 雙端佇列
雙端佇列
輸入受限
輸出受限
注:
1- 前字尾表示式的手工做法
1) 按運算子的優先順序給所有式子加括號
2) 字首:運算子放到括號前
字尾:運算子放到括號後
2- 棧和佇列的應用:
1 棧在括號匹配中應用
2 棧在表示式求值中應用
3 棧在遞迴中應用
4 佇列在層次遍歷中應用
5 佇列在計算機系統中應用
l 主機與外部裝置速度不匹配(列印緩衝區)
l 多使用者引起的資源競爭(CPU)