資料結構使用Java 第6章 鏈結串列(Linked List).

Slides:



Advertisements
Similar presentations
資料結構 – 鏈結串列 Linked List 綠園. 鏈結串列 -Linked List Linked List 是由許多相同資料型態的項目所組 成的有限序列。 可以把鏈結串列想像成火車,有多少人就只掛多 少節的車廂,需要車廂時再跟系統要一個車廂, 人少了就把車廂還給系統。 鏈結串列是有多少資料用多少記憶體空間,有新.
Advertisements

我的未来不是梦 攀枝花市经贸旅游学校. 1. 文中案例王萍苦恼的原因是 什么? 2. 你有哪些办法可以帮助王萍? 导入 思考  谁来帮帮她?
C语言程序设计 李伟光.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
第三章 鏈結串列 Linked List 版權屬作者所有,非經作者 同意不得用於教學以外用途.
第三章 鏈結串列 Linked Lists.
102學年度預算編製說明會 主辦單位:會計室 102/02/22.
科學科 污染 空氣 成因 的 : 題目 及 減少空氣污染的方法 陳玉玲 (4) 姓名 : 去到目錄.
資料結構 第3章 鏈結串列.
第4章 鏈結串列(Linked Lists) 4-1 動態記憶體配置 4-2 鏈結串列的基礎 4-3 單向鏈結串列 4-4 環狀鏈結串列
資料結構設計與C++程式應用 Fundamentals of Data Structures and Their Applications Using C++ 第3章 佇列 資料結構設計與C++程式應用.
鏈結串列 (Linked List).
資料結構與演算法 第四章 鍵結串列 徐熊健.
第11章 資料結構 – 使用C語言的模組 11-1 資料結構的基礎 11-2 C語言的模組化程式設計 11-3 基本鏈結串列
4.1 單項鏈結串列 4.2 環狀串列 4.3 雙向鏈結串列 4.4 鏈結串列之應用
Chapter 3 鏈結串列結構 資料結構導論 - C語言實作.
串列(List) 撰寫一串列程式.
資料結構與C++程式設計進階 鏈結串列 講師:林業峻 CSIE, NTU 6/ 10, 2010.
第十五章 Linked List, Stack and Queue
類別(class) 類別class與物件object.
剪貼簿.
王豐緒 銘傳大學資訊工程學系 問題:JAVA 物件檔輸出入.
(Circular Linked Lists)
TCP/IP介紹 講師:陳育良 2018/12/28.
鏈結串列 (Linked List) 註:要會指標(Pointer)
第 六 章 鏈結串列(Link List) 課程名稱:資料結構 授課老師:________ 2019/1/2.
Ch03 鏈結串列結構 淡江大學 周清江.
學習 2019/1/12. 學習 2019/1/12 Chapter 3 鏈結串列結構 資料結構導論 - C語言實作.
資料結構使用Java 第8章 佇列(Queue).
4.1 單向鏈結串列 4.2 堆疊的加入與刪除 4.3 佇列的加入與刪除 4.4 其他型式的佇列
第三章 鏈結串列 3-1  單向鏈結串列 3-2 環狀鏈結串列 3-3 雙向鏈結串列.
Chapter 9 高度平衡二元搜尋樹 AVL Binary Search Tree
Java 程式設計 講師:FrankLin.
JAVA 程式設計與資料結構 第四章 陣列、字串與數學物件.
Chap3 Linked List 鏈結串列.
集合框架和泛型(一).
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
Chapter 4 資料結構.
Java集合.
資料結構 優點 缺點 1 陣列 (Array) 沒有額外變量 (例head, next,...) 運作/操作較簡單 更新資料時,若要保持順序,需要移動較大量資料 靜態結構Static (宣告時已決定了陣列元素多少,不能在程式執行期間增減元素) 2 隊列Queue (FIFO) 容易更新 加入enqueue:
資料結構與C++程式設計進階 實作練習 講師:林業峻 CSIE, NTU 6/ 24, 2010.
挑戰C++程式語言 ──第8章 進一步談字元與字串
資料結構 老師:李崇明 助教:楊斯竣.
樣版.
C qsort.
DRC with Calibre 課程名稱:VLSI 報告人:黃家洋 日期: 改版(蔡秉均) 1.
MicroSim pspice.
講師:郭育倫 第3章 基本資料結構 講師:郭育倫
中国农业科学院博士后学术论坛 博士后基金申请的经验及体会 中国农业科学院生物技术研究所 秦 华 博士
第14章 結構與其他資料形式.
陣列與結構.
Chapter 4 鏈結串列 Linked List 2019/5/14.
資料結構使用Java 第7章 堆疊(Stack).
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
動畫演示 Node規範了一些基本的方法,像是增加節點、刪除節點、讓節點做一些事、取得第n個節點等等
資料結構 – 鏈結串列 Linked List 綠園.
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
方格紙上畫正方形.
資料結構使用Java 第5章 串列程式實作.
鏈結串列 Link List chapter 6 德明科技大學資訊科技系.
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
Trees 授課者:驕芸.
10303: How Many Trees? ★★☆☆☆ 題組:Contest Archive with Online Judge
6 集合类与泛型.
鏈結串列 (Linked List).
Unix指令4-文字編輯與程式撰寫.
Develop and Build Drives by Visual C++ IDE
Introduction to Mobile Computing
InputStreamReader Console Scanner
資料結構 Data Structure (資管二)
Presentation transcript:

資料結構使用Java 第6章 鏈結串列(Linked List)

課程內容 鏈結串列存在的原因 鏈結串列的基本結構與特性 單向鏈結串列 實作鏈結串列 串列與鏈結串列 addLast, addFirst, add removeLast, removeFirst, remove get, set, size

串列與鏈結串列 串列的缺點: 改良─鏈結串列(Linked List) 串列的大小受到陣列的限制。 插入或刪除一個元素,其後面所有元素都要修正。 改良─鏈結串列(Linked List) 鏈結串列的大小可以無限制擴增 插入與刪除元素動作小,不會影響其他元素。

鏈結串列 (linked list) 的 基本結構與特性 這種透過鏈結把相似個體連接起來的結構,就是 一種鏈結串列。例如:火車。 鏈結串列的元素透過鏈結連接在一起,除了頭尾 兩個元素以外,每個元素都有之前與之後的兩個 相鄰的元素。

鏈結串列形成的實例

[鏈結串列的節點結構] 鏈結串列中的元素可以用一個節點來表示 節點包括兩個部分 : 資料(data)與鏈結(link), 鏈結儲存的是下一個節點的位址。

[單向鏈結串列(singly linked list) 的定義] 頭節點在結構上看起來跟其他的節點沒有什麼差 異,但是前面沒有其他的節點。 尾節點的鏈結是空值(null),因為沒有下一個節點。

實作Linked List 使用Java Collections Framework中的Linked List 類別實作。 Linked List在Java API架構中的位置: import java.util.*; 宣告Linked List物件 LinkedList <元素DT> 物件名 = new LinkedList <元 素DT> (); Linked List可以直接輸出 System.out.println(物件名);

插入尾端節點(addLast) 使用addLast方法可直接將元素插入原Linked List 尾端 程式碼: 1. 產生新節點(data為元素值,link指向null) 2. 將原linked list最尾端link指向新節點。 程式碼: 物件名.add(元素); 例如:obj.addLast(“Joe”); Joe null John null

插入前端節點(addFirst) 執行步驟 程式碼: 1. 產生新節點(data為元素值,link指向null) 2. 將新節點的link指向原linked list最前端節點。 程式碼: 物件名.add(元素); 例如:obj.addFirst(“Allen”);

插入節點(add) 若無索引值,可將元素插入原Linked List尾端(功 能與addLast相同) 1. 產生新節點(data為元素值,link指向null) 2. 將原linked list最尾端link指向新節點。 若有索引值,則可在索引值位置上插入節點 2. 新節點的link指向索引值位置的節點。 3. 索引值的前節點link指向新節點。 程式碼: obj.add(“Martin”); obj.add(1, “Richard”);

刪除尾端節點(removeLast) 刪除linked list中的最後節點 程式碼: 將倒數第2個節點的link改為null。 刪除最後節點(回收空間)。 程式碼: obj.removeLast();

刪除前端節點(removeFirst) 刪除linked list中的最前端節點 程式碼: 將開頭改為第2個節點。 刪除第1個節點(回收空間)。 程式碼: obj.removeFirst();

刪除節點(remove) 給予索引值或元素,刪除該索引值或元素之節點。 程式碼: 將欲刪除節點的前節點,指向下個節點。 刪除節點。(回收空間) 程式碼: obj.remove(“Joe”); obj.remove(1);

取得(get)、設定(set)元素值 使用get可以取得某位置的元素值 使用set可以取得某位置的元素值 obj.get(3); obj.set(3, 元素值);

取得目前長度(size) 使用size方法取得目前鏈結串列長度 其他Linked List相關方法: obj.size(); 其他Linked List相關方法: http://download.oracle.com/javase/6/docs/api/jav a/util/LinkedList.html