Providence University Dept of Computer Science and Information

  • Slides: 51
Download presentation
Providence University 資料結構 老師:李崇明 助教:楊斯竣 資 訊 程 學 Dept. of Computer Science and

Providence University 資料結構 老師:李崇明 助教:楊斯竣 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 1/24

3 Providence University 堆疊的基本結構 • 每個物件為一個元素 • 堆疊的上方是開放的、底部則是封閉的。 資 訊 程 學 Dept. of

3 Providence University 堆疊的基本結構 • 每個物件為一個元素 • 堆疊的上方是開放的、底部則是封閉的。 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 3/24

5 Providence University 堆疊的特性 • 移除元素只能從堆疊最上方元素開始移除。 • 稱做後進先出(LIFO, Last In First Out) • 堆疊清空就無法再取出元素

5 Providence University 堆疊的特性 • 移除元素只能從堆疊最上方元素開始移除。 • 稱做後進先出(LIFO, Last In First Out) • 堆疊清空就無法再取出元素 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 5/24

6 Providence University 實作Stack • 使用Java Collections Framework中的 Stack類別實作。 • 不用從頭寫一個全新的Stack功能程式。 • Stack在Java API架構中的位置:

6 Providence University 實作Stack • 使用Java Collections Framework中的 Stack類別實作。 • 不用從頭寫一個全新的Stack功能程式。 • Stack在Java API架構中的位置: – import java. util. *; • 宣告Linked List物件 資 訊 – Stack<資料型態> 物件名 = new Stack<資料型 態> (); – 例如:Stack<String> s = new Stack<String>(); 程 學 系 Dept. of Computer Science and Information Engineering 6/24

12 Providence University 彈出Stack中的所有元素 • 判斷Stack是否為空 • 若不為空則彈出元素 • 重複步驟直到Stack為空 while(s. empty()!=true) System. out.

12 Providence University 彈出Stack中的所有元素 • 判斷Stack是否為空 • 若不為空則彈出元素 • 重複步驟直到Stack為空 while(s. empty()!=true) System. out. println(s. pop()); 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 12/24

13 Providence University 存取Stack-不改變元素順序 資 訊 程 學 Dept. of Computer Science and Information

13 Providence University 存取Stack-不改變元素順序 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 13/24

14 Providence University 存取Stack-不改變元素順序 資 訊 程 學 Dept. of Computer Science and Information

14 Providence University 存取Stack-不改變元素順序 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 14/24

15 Providence University 存取Stack-不改變元素順序 資 訊 程 學 Dept. of Computer Science and Information

15 Providence University 存取Stack-不改變元素順序 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 15/24

16 Providence University 存取Stack-元素順序完全倒轉 資 訊 程 學 Dept. of Computer Science and Information

16 Providence University 存取Stack-元素順序完全倒轉 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 16/24

17 Providence University 存取Stack-元素順序完全倒轉 資 訊 程 學 Dept. of Computer Science and Information

17 Providence University 存取Stack-元素順序完全倒轉 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 17/24

18 Providence University 存取Stack-元素順序完全倒轉 資 訊 程 學 Dept. of Computer Science and Information

18 Providence University 存取Stack-元素順序完全倒轉 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 18/24

Providence University 4 -3 -2 後序運算式的計算-過程2 • 接著讀入的字元'7'是運算元,再存入運算元 堆疊,如下圖所示: 資 訊 程 學 Dept.

Providence University 4 -3 -2 後序運算式的計算-過程2 • 接著讀入的字元'7'是運算元,再存入運算元 堆疊,如下圖所示: 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 30/24

Providence University 後序運算式的計算 資 訊 程 學 Dept. of Computer Science and Information Engineering

Providence University 後序運算式的計算 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 36/24

Providence University 後序運算式的計算 資 訊 程 學 Dept. of Computer Science and Information Engineering

Providence University 後序運算式的計算 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 37/24

Providence University 後序運算式的計算 資 訊 程 學 Dept. of Computer Science and Information Engineering

Providence University 後序運算式的計算 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 38/24

Providence University 4 -3 -3 中序運算式轉換成後序運 算式-過程7 • 接著讀入運算元'4',直接輸出運算元,如下 圖所示: 資 訊 程 學

Providence University 4 -3 -3 中序運算式轉換成後序運 算式-過程7 • 接著讀入運算元'4',直接輸出運算元,如下 圖所示: 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 46/24

Providence University 中序運算式轉換成後序運算式 資 訊 程 學 Dept. of Computer Science and Information Engineering

Providence University 中序運算式轉換成後序運算式 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 49/24

Providence University 中序運算式轉換成後序運算式 資 訊 程 學 Dept. of Computer Science and Information Engineering

Providence University 中序運算式轉換成後序運算式 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 50/24

Providence University 中序運算式轉換成後序運算式 資 訊 程 學 Dept. of Computer Science and Information Engineering

Providence University 中序運算式轉換成後序運算式 資 訊 程 學 Dept. of Computer Science and Information Engineering 系 51/24