4.1 單向鏈結串列 4.2 堆疊的加入與刪除 4.3 佇列的加入與刪除 4.4 其他型式的佇列

Slides:



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

“三生教育”专题 生命·生存·生活.
第三章 鏈結串列 Linked List 版權屬作者所有,非經作者 同意不得用於教學以外用途.
資料結構(計財系).
寻觅节日诗情.
第一節 進入職場前的準備 第二節 培養求職能力 第三節 當前的就業趨勢 第四節 新世代工作地圖
第三章 鏈結串列 Linked List.
第三章 鏈結串列 Linked Lists.
資料結構與C++程式設計進階 資料結構概論 講師:林業峻 CSIE, NTU 6/ 7, 2010.
第4章 鏈結串列(Linked Lists) 4-1 動態記憶體配置-(6) 4-2 鏈結串列的基礎-(7)
Linked List Operations
第6章 佇列(Queues) 6-1 佇列的基礎 6-2 佇列的表示法 6-3 環狀佇列 6-4 雙佇列.
單向鏈結串列 Singly Linked Lists.
資料結構 第3章 鏈結串列.
結構(struct).
第4章 鏈結串列(Linked Lists) 4-1 動態記憶體配置 4-2 鏈結串列的基礎 4-3 單向鏈結串列 4-4 環狀鏈結串列
資料結構設計與C++程式應用 Fundamentals of Data Structures and Their Applications Using C++ 第3章 佇列 資料結構設計與C++程式應用.
資料結構 第5章 佇列.
鏈結串列 (Linked List).
資料結構與演算法 第四章 鍵結串列 徐熊健.
親愛的老師您好 感謝您選用本書作為授課教材,博碩文化準備本書精選簡報檔,特別摘錄重點提供給您授課專用。 說明: 博碩文化:
4.1 單項鏈結串列 4.2 環狀串列 4.3 雙向鏈結串列 4.4 鏈結串列之應用
Chapter 3 鏈結串列結構 資料結構導論 - C語言實作.
Chap 4 鏈結串列 Linked Lists.
第12章 樹狀搜尋結構 (Search Trees)
資料結構與C++程式設計進階 鏈結串列 講師:林業峻 CSIE, NTU 6/ 10, 2010.
第十五章 Linked List, Stack and Queue
101北一女中 資訊選手培訓營 圖論基礎 Nan.
(Circular Linked Lists)
第十章 C高级程序应用—链表* 10.1链表的基本概念 10.2单向链表 10.3双向链表 10.4应用举例.
第五章 堆疊 5-1 認識佇列 5-2 佇列的應用.
鏈結串列 (Linked List) 註:要會指標(Pointer)
第 六 章 鏈結串列(Link List) 課程名稱:資料結構 授課老師:________ 2019/1/2.
Ch03 鏈結串列結構 淡江大學 周清江.
Chapter 4 堆疊和佇列 資料結構導論 - C語言實作.
學習 2019/1/12. 學習 2019/1/12 Chapter 3 鏈結串列結構 資料結構導論 - C語言實作.
第三章 鏈結串列 3-1  單向鏈結串列 3-2 環狀鏈結串列 3-3 雙向鏈結串列.
Chapter 9 高度平衡二元搜尋樹 AVL Binary Search Tree
Chap3 Linked List 鏈結串列.
資料結構 第4章 堆疊.
第三章 链表 单链表 (Singly Linked List) 循环链表 (Circular List) 多项式及其相加
Chapter 4 資料結構.
Chapter 4 資料結構.
資料結構 優點 缺點 1 陣列 (Array) 沒有額外變量 (例head, next,...) 運作/操作較簡單 更新資料時,若要保持順序,需要移動較大量資料 靜態結構Static (宣告時已決定了陣列元素多少,不能在程式執行期間增減元素) 2 隊列Queue (FIFO) 容易更新 加入enqueue:
第三章 链表 单链表 循环链表 多项式及其相加 双向链表 稀疏矩阵.
資料結構與C++程式設計進階 實作練習 講師:林業峻 CSIE, NTU 6/ 24, 2010.
Linked Lists Prof. Michael Tsai 2013/3/12.
進階佇列.
本教學投影片係屬教科書著作之延伸,亦受著作權法之保護。
資料結構 老師:李崇明 助教:楊斯竣.
樣版.
Chap2 Stack & Queue.
北一女中 資訊選手培訓營 圖論基礎 By Nan( ).
講師:郭育倫 第3章 基本資料結構 講師:郭育倫
資料結構使用Java 第6章 鏈結串列(Linked List).
◆ 第3節 基音與泛音 一、縱波的駐波 二、開管樂器的駐波 三、閉管樂器的駐波 四、共鳴空氣柱實驗 範例 1 範例 2 範例 3 範例 4
第14章 結構與其他資料形式.
陣列與結構.
指標、串列 (Linked List).
Chapter 4 鏈結串列 Linked List 2019/5/14.
第4章 堆疊和佇列 資料結構設計與C++程式應用
動畫演示 Node規範了一些基本的方法,像是增加節點、刪除節點、讓節點做一些事、取得第n個節點等等
資料結構 – 鏈結串列 Linked List 綠園.
第4章 鏈結串列(Linked Lists) 4-1 動態記憶體配置-(6) 4-2 鏈結串列的基礎-(7)
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
資料結構使用Java 第5章 串列程式實作.
Chapter 2 Entity-Relationship Model
鏈結串列 Link List chapter 6 德明科技大學資訊科技系.
10303: How Many Trees? ★★☆☆☆ 題組:Contest Archive with Online Judge
鏈結串列 (Linked List).
Presentation transcript:

4.1 單向鏈結串列 4.2 堆疊的加入與刪除 4.3 佇列的加入與刪除 4.4 其他型式的佇列 Chapter 4 鏈結串列 4.1 單向鏈結串列 4.2 堆疊的加入與刪除 4.3 佇列的加入與刪除 4.4 其他型式的佇列

4.1 單向鏈結串列 為何使用鏈結串列(linked list)? 鏈結串列 vs. 陣列 4.1 單向鏈結串列 為何使用鏈結串列(linked list)? 為了避免以陣列方式來存放資料時,在插入(insert)或刪除(delete)某一節點所遇到的困難 節省配置的記憶體空間 鏈結串列 vs. 陣列 在加入和刪除時利用指標(pointer),因此比陣列來得簡單 鏈結串列在搜尋上所花費的時間會比陣列來得久

4.1 單向鏈結串列 單向鏈結串列 資料結構:資料(data)欄和鏈結(next)欄 資料結構定義: struct node{ 4.1 單向鏈結串列 單向鏈結串列 資料結構:資料(data)欄和鏈結(next)欄 資料結構定義: struct node{ int data; struct node *next; }; struct node *head = NULL, *tail, *this, *prev, *x, *p, *ptr; head:指向串列前端的指標,tail:指向串列尾端的指標 data next

4.1 單向鏈結串列 如串列A={a, b, c, d},其以鏈結串列表示的資料結構如下: 4.1 單向鏈結串列 如串列A={a, b, c, d},其以鏈結串列表示的資料結構如下: 假設鏈結串列的第一個節點(亦即head 所指向的節點),其data 欄不放任何資料。讓我們來看看鏈結串列中的加入與刪除動作,這些動作又可分為前端、尾端或隨機加入某一節點。

4.1 單向鏈結串列 4.1.1 加入動作

4.1 單向鏈結串列

4.1 單向鏈結串列

4.1 單向鏈結串列

4.1 單向鏈結串列

4.1 單向鏈結串列

4.1 單向鏈結串列

4.1 單向鏈結串列 4.1.2 刪除動作

4.1 單向鏈結串列

4.1 單向鏈結串列

4.1 單向鏈結串列

4.1 單向鏈結串列

4.1 單向鏈結串列

4.1 單向鏈結串列

4.1 單向鏈結串列 4.1.3 將兩串列相連接

4.1 單向鏈結串列

4.1 單向鏈結串列

4.1 單向鏈結串列 4.1.4 將一串列反轉

4.1 單向鏈結串列

4.1 單向鏈結串列

4.1 單向鏈結串列 4.1.5 計算串列的長度

4.1 單向鏈結串列

4.2 環狀鏈結串列

4.2 環狀鏈結串列 4.2.1 加入動作

4.2 環狀鏈結串列

4.2 環狀鏈結串列

4.2 環狀鏈結串列

4.2 環狀鏈結串列 4.2.2 刪除的動作

4.2 環狀鏈結串列

4.2 環狀鏈結串列

4.2 環狀鏈結串列

4.2 環狀鏈結串列

4.2 環狀鏈結串列 4.2.3 兩個環狀串列之相連

4.2 環狀鏈結串列

4.2 環狀鏈結串列

4.2 環狀鏈結串列

4.3 雙向鏈結串列 雙向鏈結串列(doubly linked list) 乃是每個節點皆具有三個欄位,一為左鏈結(LLINK),二為資料(DATA),三為右鏈結(RLINK),其資料結構如下: 其中LLINK 指向前一個節點,而RLINK 指向後一個節點。通常在雙向鏈結串列加上一個串列首,此串列首的資料欄不存放資料。如下圖所示:

4.3 雙向鏈結串列 雙向鏈結串列具有下列兩點特性: 1. 假設ptr 是任何節點的指標,則 4.3 雙向鏈結串列 雙向鏈結串列具有下列兩點特性: 1. 假設ptr 是任何節點的指標,則 ptr = ptr→llink→rlink = ptr→rlink→llink; 2. 若此雙向鏈結串列是空串列,則只有一個串列首。 3. 雙向鏈結串列的優點為(1)加入或刪除時,無需知道其前一節點的位址;(2)可以從任一節點找到其前一節點或後一節點;(3)可以將某一節點遺失的左或右指標適時的加以恢復之;而其缺點為(1)增加一個指標空間;(2)加入時需改變四個指標,而單向只需改變二個指標即可;(3)刪除時需改變兩個指標,而單向只要改變一個即可。

4.3 雙向鏈結串列 4.3.1 加入動作

4.3 雙向鏈結串列

4.3 雙向鏈結串列

4.3 雙向鏈結串列

4.3 雙向鏈結串列

4.3 雙向鏈結串列

4.3 雙向鏈結串列

4.3 雙向鏈結串列

4.3 雙向鏈結串列 4.3.2 刪除的動作

4.3 雙向鏈結串列

4.3 雙向鏈結串列

4.3 雙向鏈結串列

4.3 雙向鏈結串列

4.3 雙向鏈結串列

4.3 雙向鏈結串列

4.4 鏈結串列的應用 4.4.1 以鏈結串列表示堆疊

4.4 鏈結串列的應用

4.4 鏈結串列的應用

4.4 鏈結串列的應用

4.4 鏈結串列的應用 4.4.2 以鏈結串列表示佇列

4.4 鏈結串列的應用

4.4 鏈結串列的應用

4.4 鏈結串列的應用

4.4 鏈結串列的應用 4.4.3 多項式相加

4.4 鏈結串列的應用

4.4 鏈結串列的應用

4.4 鏈結串列的應用

4.4 鏈結串列的應用

4.4 鏈結串列的應用