資料結構使用Java 第7章 堆疊(Stack).

Slides:



Advertisements
Similar presentations
計算機程式語言實習課.
Advertisements

C语言程序设计 李伟光.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
一百零一年溪口國小 學校日 班級: 三年三班 教師: 張慈麟.
4-1 認識堆疊 4-2 堆疊的應用 4-3 算術運算式的求值 4-4 中序法轉換為前序法 4-5 前序與後序式轉換成中序式
关注热点 2014年天猫双十一成交总额 571亿 点亮217个国家地区
班級:行流四甲 組員:497D0004何筱瑩 497D0016鄧宜欣 497D0044呂亭儀 497D0056黃 琪 497D0063賴依淩
高等职业学校建筑设计类与艺术设计类专业骨干教师实践能力国家级培训
102學年度預算編製說明會 主辦單位:會計室 102/02/22.
Chapter 1 Combinatorial Analysis
网络信息资源的开发与设计 主讲教师 罗双兰 广西师范大学教育科学学院.
科學科 污染 空氣 成因 的 : 題目 及 減少空氣污染的方法 陳玉玲 (4) 姓名 : 去到目錄.
TQC+ JAVA全國教師研習會 PLWeb 程式設計練習平台 簡介.
第9课 北美大陆上的新体制 导入新课 新课教学 课堂小结 知识结构 巩固练习
第三章 堆疊與佇列的基本應用 3-1 簡介堆疊(Stack) 3-2 迷宮問題研究 3-3 佇列(queue)的介紹
第 3 章 堆疊與佇列.
佇列與推疊 (Queue and Stack)
資料結構設計與C++程式應用 Fundamentals of Data Structures and Their Applications Using C++ 第3章 佇列 資料結構設計與C++程式應用.
資料結構簡介.
Chapter 3 堆疊與佇列 3.1 堆疊和佇列基本觀念 3.2 堆疊的加入與刪除 3.3 佇列的加入與刪除 3.4 其他型式的佇列
第三章 堆疊與佇列 Stacks & Queues
Chap 3 堆疊與佇列 Stack and Queue.
第8章 列舉器與集合 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或供拷貝.
JAVA 程式設計與資料結構 第六章 輸出與輸入.
Stack(堆疊) 堆疊的定義 簡單的應用範例 Stack ADT
Google Data API Spreadsheet
第十五章 Linked List, Stack and Queue
4 堆疊與佇列 4.1 前言 四種基本的資料結構 (可儲存資料的容器) 陣列 (Array)、串列(List): 最基本
類別(class) 類別class與物件object.
堆疊簡介 遞迴 佇列 算術運算式的表示法 中序轉換為前序或後序 前序與後序轉換成中序
堆疊 Stack chapter 4 德明科技大學資訊科技系.
資料結構與演算法 第三章 堆疊和佇列 徐熊健.
第5章 堆疊(Stacks) 5-1 堆疊的基礎 5-2 堆疊的表示法 5-3 堆疊的應用 - 運算式的計算與轉換
12-1 類比/數位(A/D)轉換IC 2018/12/25 第12章 類比/數位(A/D)介面實習.
Chapter 3 堆疊與佇列 ( Stacks and Queues ).
資料結構使用Java 第8章 佇列(Queue).
Java 程式設計 講師:FrankLin.
JAVA 程式設計與資料結構 第四章 陣列、字串與數學物件.
Chap3 Linked List 鏈結串列.
資料結構 第4章 堆疊.
第 四 章 堆疊(Stack) 課程名稱:資料結構 授課老師:________ 2019/2/23.
感謝同學們在加分題建議. 我會好好研讀+反省~
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
Ch20. 計算器 (Mac 版本).
網路程式設計期末project B 張芸菱.
資料結構 優點 缺點 1 陣列 (Array) 沒有額外變量 (例head, next,...) 運作/操作較簡單 更新資料時,若要保持順序,需要移動較大量資料 靜態結構Static (宣告時已決定了陣列元素多少,不能在程式執行期間增減元素) 2 隊列Queue (FIFO) 容易更新 加入enqueue:
Chapter 3 堆疊與佇列 3.1 堆疊和佇列基本觀念 3.2 堆疊的機入與刪除 3.3 佇列的加入與刪除 3.4 環狀佇列
第 19 章 XML記憶體執行模式.
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
期末考.
挑戰C++程式語言 ──第8章 進一步談字元與字串
Chap2 Stack & Queue.
如何使用Gene Ontology 網址:
Chap2 Stack & Queue.
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
資料結構使用Java 第6章 鏈結串列(Linked List).
挑戰C++程式語言 ──第7章 輸入與輸出.
MiRanda Java Interface v1.0的使用方法
陣列與結構.
作業
程式設計--Quick Sort 通訊一甲 B 楊穎穆.
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
方格紙上畫正方形.
所得稅法第14條、第126條修正條文 薪資所得計算方式二擇一 定額減除 特定費用減除 維持現行薪資所得特別扣除額20萬元減除方式
第十三章 彩色影像處理.
第13章 電腦解題與演算法 13-4 資料結構.
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
10303: How Many Trees? ★★☆☆☆ 題組:Contest Archive with Online Judge
Chapter 4 Multi-Threads (多執行緒).
InputStreamReader Console Scanner
Presentation transcript:

資料結構使用Java 第7章 堆疊(Stack)

課程內容 堆疊的基本結構 堆疊的特性 堆疊的操作 堆疊存取順序的影響 堆疊應用的實例 empty, push, pop, peek, search 堆疊存取順序的影響 堆疊應用的實例

堆疊的基本結構 每個物件為一個元素 堆疊的上方是開放的、底部則是封閉的。

堆疊的特性 放入或取出都只能從最上方元素的位置來進行。 先加者在下,後加者在上,元素間不能留空位。 空間有限,如果滿了就無法再加入

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

實作Stack 使用Java Collections Framework中的Stack類別 實作。 不用從頭寫一個全新的Stack功能程式。 Stack在Java API架構中的位置: import java.util.*; 宣告Linked List物件 Stack<元素DT> 物件名 = new Stack<元素DT> (); 例如:Stack<String> s = new Stack<String>();

是否為空(empty) 測試堆疊是否為空。跟前一個操作類似,它也是 用來測試堆疊的現況。 程式碼:物件名.empty(); 例如:s.empty();

推入(Push) 即是推入元素,這是將元素加入堆疊的唯一方法; 假如堆疊不是滿的,就把元素從上方放入堆疊。 例如:s.push(“Mary”);

彈出(pop) 即是彈出元素,並取得該元素的內容;假如堆疊 不是空的,就把目前位於最頂端的元素移出堆疊, 同時探知該元素是什麼內容。 例如:s.pop();

查看最頂端元素(peek ) 讀取最頂端的元素 此動作不推入新元素,也不取出既有的元素。 程式碼:物件名.peek(); 例如:s.peek();

搜尋某元素的位置(search ) 回傳某元素的位置(層次)值。 此動作不會推入新元素、或是彈出既有元素。 最上層的位置為1。 例如:s.search(“Martin”);

彈出Stack中的所有元素 判斷Stack是否為空 若不為空則彈出元素 重複步驟直到Stack為空 While(s.empty()!=true) System.out.println(s.pop());

存取Stack-不改變元素順序

存取Stack-不改變元素順序

存取Stack-不改變元素順序

存取Stack-元素順序完全倒轉

存取Stack-元素順序完全倒轉

存取Stack-元素順序完全倒轉

練習 輸入數字(不限個數)並反序印出。 數字0即代表輸入完畢。

堆疊應用的實例-數字排列 把3個數字以不同組合的push與pop操作 則會產生幾種不同的輸出順序? 3個元素自由排列的結果可有3!種,但並不是所有 可能的次序都能經由堆疊產生。

堆疊應用的實例-數字排列 第1個狀況:push與pop交錯進行

堆疊應用的實例-數字排列 不同組合的push與pop的操作 數字順序312,無法利用堆疊產生。

堆疊應用的實例-括弧對應的檢查 我們下面用堆疊來檢查一個字串裡頭的左括弧與 右括弧是否有適當的對應。

堆疊應用的實例-括弧對應的檢查

堆疊應用的實例-括弧對應的檢查

堆疊應用的實例-中序後序轉換(作業) 運算式的表示法 前序(prefix)表示法: + x y 中序(infix)表示法 : x + y 後序(postfix)表示法 : x y +

堆疊應用的實例-中序後序轉換

堆疊應用的實例-中序後序轉換

堆疊應用的實例-中序後序轉換 後序表示法計算取值的步驟