第7章 圖形與網路 資料結構設計與C++程式應用

Slides:



Advertisements
Similar presentations
FCU, Department of ECE, IC Design Research Lab. TEL: # 4945 Pre-SIm , Post-Sim.
Advertisements

Divide-and-Conquer. 什麼是 divide-and-conquer ? Divide 就是把問題分割 Conquer 則是把答案結合起來.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
: A-Sequence 星級 : ★★☆☆☆ 題組: Online-judge.uva.es PROBLEM SET Volume CIX 題號: Problem D : A-Sequence 解題者:薛祖淵 解題日期: 2006 年 2 月 21 日 題意:一開始先輸入一個.
:Word Morphing ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10508:word morphing 解題者:楊家豪 解題日期: 2006 年 5 月 21 日 題意: 第一行給你兩個正整數, 第一個代表下面會出現幾個字串,
Section 1.2 Describing Distributions with Numbers 用數字描述分配.
3Com Switch 4500 切VLAN教學.
1.1 線性方程式系統簡介 1.2 高斯消去法與高斯-喬登消去法 1.3 線性方程式系統的應用(-Skip-)
: Road Construction ★★★☆☆ 題組: Contest Archive with Online Judge 題號: 10724: Road Construction 解題者:徐文宏 解題日期: 2011 年 4 月 20 日 題意:給一個座標圖 (-1000~1000)
Graph V(G 1 )={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} E(G 1 )={(0, 2), (0, 3), (1, 4), (2, 3), (2, 5), (2, 6), (3, 6), (3, 7), (4, 7), (5, 6), (5,
:New Land ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11871: New Land 解題者:施博修 解題日期: 2011 年 6 月 8 日 題意:國王有一個懶兒子,為了勞動兒子,他想了一個 辦法,令他在某天早上開始走路,直到太陽下山前,靠.
: OPENING DOORS ? 題組: Problem Set Archive with Online Judge 題號: 10606: OPENING DOORS 解題者:侯沛彣 解題日期: 2006 年 6 月 11 日 題意: - 某間學校有 N 個學生,每個學生都有自己的衣物櫃.
: ShellSort ★★☆☆☆ 題組: Problem D 題號: 10152: ShellSort 解題者:林一帆 解題日期: 2006 年 4 月 10 日 題意:烏龜王國的烏龜總是一隻一隻疊在一起。唯一改變烏龜位置 的方法為:一隻烏龜爬出他原來的位置,然後往上爬到最上方。給 你一堆烏龜原來排列的順序,以及我們想要的烏龜的排列順序,你.
STAT0_sampling Random Sampling  母體: Finite population & Infinity population  由一大小為 N 的有限母體中抽出一樣本數為 n 的樣 本,若每一樣本被抽出的機率是一樣的,這樣本稱 為隨機樣本 (random sample)
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
JAVA 程式設計與資料結構 第十四章 Linked List. Introduction Linked List 的結構就是將物件排成一列, 有點像是 Array ,但是我們卻無法直接經 由 index 得到其中的物件 在 Linked List 中,每一個點我們稱之為 node ,第一個 node.
MATLAB 程式設計 第 11 章 多維陣列 多維陣列的定義 在 MATLAB 的資料型態中,向量可視為 一維陣列,矩陣可視二維陣列,對於維 度 (Dimensions) 超過 1 的陣列則均可視 為「多維陣列」 (Multidimesional Arrays , 簡稱 N-D Arrays)
8.1 何謂高度平衡二元搜尋樹 8.2 高度平衡二元搜尋樹的加入 8.3 高度平衡二元搜尋樹的刪除
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
: The Playboy Chimp ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10611: The Playboy Chimp 解題者:蔡昇宇 解題日期: 2010 年 2 月 28 日 題意:給一已排序的數列 S( 升冪.
Monte Carlo Simulation Part.2 Metropolis Algorithm Dept. Phys. Tunghai Univ. Numerical Methods C. T. Shih.
JAVA 程式設計與資料結構 第十章 GUI Introdution III. File Chooser  File Chooser 是一個選擇檔案的圖形介面, 無論我們是要存檔還是要開啟檔案,使 用這個物件都會讓我們覺得容易且舒適。
1 第四章 多變數函數的微分學 § 4.1 偏導數定義 定義 極限值 ■. 2 定理 極限值的基本定理 (1) 極限值的唯一性 : 若 存在,則 其值必為唯一。 (2) 若 且 ( 與 為常數 ) , 則 且 為常數且.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
:Problem D: Bit-wise Sequence ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10232: Problem D: Bit-wise Sequence 解題者:李濟宇 解題日期: 2006 年 4 月 16.
: The largest Clique ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11324: The largest Clique 解題者:李重儀 解題日期: 2008 年 11 月 24 日 題意: 簡單來說,給你一個 directed.
3-3 使用幾何繪圖工具 Flash 的幾何繪圖工具包括線段工具 (Line Tool) 、橢圓形工具 (Oval Tool) 、多邊星形 工具 (Rectangle Tool) 3 種。這些工具畫出 來的幾何圖形包括了筆畫線條和填色區域, 將它們適當地組合加上有技巧地變形與配 色, 不但比鉛筆工具簡單,
: Tight words ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: : Tight Words 解題者:鐘緯駿、林一帆 解題日期: 2006 年 03 月 14 日 題意: 給定數字 k 與 n (0 ≦ k.
: Happy Number ★ ? 題組: Problem Set Archive with Online Judge 題號: 10591: Happy Number 解題者:陳瀅文 解題日期: 2006 年 6 月 6 日 題意:判斷一個正整數 N 是否為 Happy Number.
: Fast and Easy Data Compressor ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10043: Fast and Easy Data Compressor 解題者:葉貫中 解題日期: 2007 年 3.
3.1 矩陣的行列式 3.2 使用基本運算求行列式 3.3 行列式的性質 3.4 特徵值介紹 3.5 行列式的應用
第三章 自動再裝載運用篇 使用時機:裝載計劃完成時,尚有剩餘空 間的情形,維持已固定計劃而繼續做裝載 最佳化。以支持次日裝載計劃而提前調整 作業模式。 裝載物品設定和裝載容器設定如前兩章介 紹,於此不再重複此動作,直接從裝載計 劃設定開始,直接從系統內定的物品和容 器選取所需.
: Problem A : MiniMice ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11411: Problem A : MiniMice 解題者:李重儀 解題日期: 2008 年 9 月 3 日 題意:簡單的說,題目中每一隻老鼠有一個編號.
: Ahoy, Pirates! ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11402: Ahoy, Pirates! 解題者:李重儀 解題日期: 2008 年 8 月 26 日 題意:有一個海盜島有 N 個海盜,他們的編號 (id)
: Multisets and Sequences ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11023: Multisets and Sequences 解題者:葉貫中 解題日期: 2007 年 4 月 24 日 題意:在這個題目中,我們要定義.
:Nuts for nuts..Nuts for nuts.. ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 10944:Nuts for nuts.. 解題者:楊家豪 解題日期: 2006 年 2 月 題意: 給定兩個正整數 x,y.
資料結構實習-一 參數傳遞.
Lecture 7 Sorting in Linear Time. Sorting in Linear Time2 7.1 Lower bounds for sorting 本節探討排序所耗用的時間複雜度下限。 任何一個以比較為基礎排序的演算法,排序 n 個元 素時至少耗用 Ω(nlogn) 次比較。
4 堆疊與佇列 4.1 前言 四種基本的資料結構 (可儲存資料的容器) 陣列 (Array)、串列(List): 最基本
Management Abstracts Retrieval System; MARS 檢索操作.
: Beautiful Numbers ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11472: Beautiful Numbers 解題者:邱經達 解題日期: 2011 年 5 月 5 日 題意: 若一個 N 進位的數用到該.
Section 4.2 Probability Models 機率模式. 由實驗看機率 實驗前先列出所有可能的實驗結果。 – 擲銅板:正面或反面。 – 擲骰子: 1~6 點。 – 擲骰子兩顆: (1,1),(1,2),(1,3),… 等 36 種。 決定每一個可能的實驗結果發生機率。 – 實驗後所有的實驗結果整理得到。
JAVA 程式設計與資料結構 第二十章 Searching. Sequential Searching Sequential Searching 是最簡單的一種搜尋法,此演 算法可應用在 Array 或是 Linked List 此等資料結構。 Sequential Searching 的 worst-case.
演算法 8-1 最大數及最小數找法 8-2 排序 8-3 二元搜尋法.
: Expect the Expected ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11427: Expect the Expected 解題者:李重儀 解題日期: 2008 年 9 月 21 日 題意:玩一種遊戲 (a game.
-Antidifferentiation- Chapter 6 朝陽科技大學 資訊管理系 李麗華 教授.
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Learning Method in Multilingual Speech Recognition Author : Hui Lin, Li Deng, Jasha Droppo Professor: 陳嘉平 Reporter: 許峰閤.
Chapter 10 m-way 搜尋樹與B-Tree
概念性產品企劃書 呂學儒 李政翰.
Probability Distribution 機率分配 汪群超 12/12. 目的:產生具均等分配的數值 (Data) ,並以 『直方圖』的功能計算出數值在不同範圍內出現 的頻率,及繪製數值的分配圖,以反應出該 機率分配的特性。
: Problem E Antimatter Ray Clearcutting ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11008: Problem E Antimatter Ray Clearcutting 解題者:林王智瑞.
: Wine trading in Gergovia ★★☆☆☆ 題組: Contest Volumes with Online Judge 題號: 11054: Wine trading in Gergovia 解題者:劉洙愷 解題日期: 2008 年 2 月 29 日 題意:在 Gergovia.
:Commandos ★★★☆☆ 題組: Contest Archive with Online Judge 題號: 11463: Commandos 解題者:李重儀 解題日期: 2008 年 8 月 11 日 題意: 題目會給你一個敵營區內總共的建築物數,以及建築物 之間可以互通的路有哪些,並給你起點的建築物和終點.
Course 7 貪婪法則 Greedy Approach
: Place the Guards ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11080: Place the Guards 解題者:陳盈村 解題日期: 2008 年 3 月 26 日 題意:有一個國王希望在他的城市裡佈置守衛,
: SAM I AM ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11419: SAM I AM 解題者:李重儀 解題日期: 2008 年 9 月 11 日 題意: 簡單的說,就是一個長方形的廟裡面有敵人,然 後可以橫的方向開砲或縱向開砲,每次開砲可以.
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
:Problem E.Stone Game ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10165: Problem E.Stone Game 解題者:李濟宇 解題日期: 2006 年 3 月 26 日 題意: Jack 與 Jim.
著作權所有 © 旗標出版股份有限公司 第 14 章 製作信封、標籤. 本章提要 製作單一信封 製作單一郵寄標籤.
:Rings and Glue ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10301: Rings and Glue 解題者:施博修 解題日期: 2011 年 5 月 18 日 題意:小約翰有了個大麻煩,他不小心將 rings.
幼兒行為觀察與記錄 第八章 事件取樣法.
結構學 ( 一 ) 第八次作業 97/05/22. 題目一 題目一 (a) 先決定放鬆哪個束制,成為靜定結構 以支承 C 之水平反力為贅力,則 C 點滾支 承變成自由端,即形成靜定基元結構 C 點滿足變位諧和  Δ CH =0.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
: How many 0's? ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11038: How many 0’s? 解題者:楊鵬宇 解題日期: 2007 年 5 月 15 日 題意:寫下題目給的 m 與 n(m
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
1 Chap. 7 Response of First-Order RL and RC Circuits Contents 7.1 The Natural Response of an RL Circuit 7.2 The Natural Response of an RC Circuit 7.3 The.
Activity Networks AOV 網路 AOE 網路. AOV 網路 (Activity on Vertx Networks)  為了表示一件工作中,各子工程間的先後 關係,我們可以利用有向圖中的有向邊代 表事情進行的順序,位於一條有向邊終點 的事件必須要等待起點的事情完成後,才 可以進行。
Presentation transcript:

第7章 圖形與網路 資料結構設計與C++程式應用 Fundamentals of Data Structures and Their Applications Using C++ 第7章 圖形與網路 資料結構設計與C++程式應用 版權所有 禁止重製

圖形的基本術語 圖形(Graph) G = (V,E) 頂點(Vertices,或稱Nodes) 邊(Edges) 無向圖(Undirected Graph) (V1 ,V2) 有向圖(Directed Graph) <V1 ,V2>

圖形的基本術語 完全圖(Complete Graph) 路徑(Path) 路徑之長度(Path Length) 簡單路徑(Simple Path) 迴路(Cycle) 相連的(Connected) 相連單元(Connected Component) 子圖(Subgraph) 緊密相連(Strongly Connected) 緊密相連單元(Strongly Connected Component) 出分支度(Out Degree) 入分支度(In Degree)

圖形的表示法 鄰接矩陣表示法

圖形的表示法 鄰接串列表示法

圖形的表示法 鄰接串列與反鄰接串列 鄰接串列 反鄰接串列

圖形的表示法 鄰接複串列表示法 邊節點

圖形追蹤 先深後廣搜尋法(Depth First Search,簡稱DFS) 1.選擇一個頂點VX當做起始點,並做一個已拜訪過的記號。 2.在所有與VX相連且未被拜訪過的頂點中任選一個頂點,令VY, 做一個已拜訪過的記號,並以VY為新的起點進行先深後廣搜尋。 堆疊

圖形追蹤 先廣後深搜尋法(Breadth First Search,簡稱 BFS) 佇列 1.選擇一個起始頂點VX,並做一個已拜訪過的記號。 3.重複步驟4直到佇列空了為止。 4.從佇列取出一個頂點VX,做一個已拜訪過的記號,並將與VX相連且未 拜訪過的頂點放入佇列中。 佇列

擴張樹(Spanning Tree) 擴張樹 一個包含 N 個頂點的無向相連圖,我們可以找出用圖中的 N-1 個邊來連接所有頂點的樹 若再加入圖形中其餘的邊到擴張樹中必會形成迴路 擴張樹中的任兩個頂點間都是相連的,也就是存在一條路徑可通,但此一路徑不一定是原圖形中該兩頂點之最短路徑。

擴張樹(Spanning Tree) 擴張樹 DFS 擴張樹 BFS 擴張樹

花費最少擴張樹(Minimum Cost Spanning Tree) P氏法(Prim's Method) 1.令 A=V,B=ψ,T=ψ。 2.從A中任選一個頂點,將之從A搬移到B,並加入T。 3.找出一條連接A和B的最少花費邊(a,b),其中aA,bB, 且邊(a,b)加到T不會造成迴路。 4.將頂點a自A搬移到B,並將頂點a與邊(a,b)加入T。 5.重複步驟3、4直到 A=ψ。   花費最少 擴張樹

花費最少擴張樹(Minimum Cost Spanning Tree) K氏法(Kruskal’s Method) 1.令花費最少擴張樹 T=ψ。 2.從E中選取花費最少的邊(VX ,VY)。 3.如果(VX,VY)不會使T產生迴路則將之加到T中; 否則,自E中刪除之。 4.重複步驟2、3,直到T的邊數等於 N-1 為止。 花費最少 擴張樹

最短路徑問題(The Shortest Path Problem) 從一個城市出發到其他每一個城市之最短距離(Single Source All Destination) 從頂點V出發到達其餘每一個頂點之最短路徑之演算法為:

最短路徑問題(The Shortest Path Problem) 1. 設定花費矩陣COST之初值,即對於每一個邊,令 COST[i][j]=邊<i,j>之距離,若<i,j> E(G)。 COST[i][j]=∞ ,若<i,j> E(G)。 2. 設定MARK和DIST兩矩陣之初值,即對每一頂點令 MARK[i]=0; DIST[i]=COST[V][i]; 3. 處理起始頂點 V,即令 NODE=2; MARK[V]=1; DIST[V]= 0; 4. 當NODE < N 時重複步驟 5、6、7。 5. 選取一個頂點 U,使得 U 是所有未被選取之頂點中DIST[U]是最少 者,即 DIST[U] = min {DIST[W]},MARK[W] = 0。 6.將頂點 U 做上記號,即令 MARK[U]=1。 NODE = NODE+1。 7.更新剩餘未被選取的頂點(MARK[W]=0)之距離矩陣值,即令 DIST[W]=min{DIST[W],DIST[U]+COST[U][W]}。

最短路徑問題(The Shortest Path Problem) 從頂點0到其餘每一個頂點之最短徑和花費

最短路徑問題(The Shortest Path Problem) 頂點0到其餘頂點之最短距離選取過程 頂點0到其餘頂點之最短路徑和距離

最短路徑問題(The Shortest Path Problem) 任兩頂點對之最短距離 (All Pairs Shortest Paths) 設頂點編號為0,1,2,…,N-1 令A-1[i][j]=COST[i][j] 並求出AK[i][j] AK[i][j]= min{AK-1[i][j] + AK-1[i][k] + AK-1[k][j]},0≦k≦N-1。 A-1[i][j]是頂點 i 至頂點 j 之直通距離 AK[i][j]是頂點 i 到 j 的最短距離,並且此最短路徑所通過之頂點編號不超過K AN-1[i][j]便可知道任一頂點對之最短距離

最短路徑問題(The Shortest Path Problem) 任兩頂點對之最短距離 (All Pairs Shortest Paths) 由 A3 得知頂點 0 到頂點 3 之最短距離為 11, 頂點 3 到頂點 1 之最短距離為 2

工作網路和拓樸排序(Activity Network and Topological Sort) 頂點工作網路(Activity On Vertex Network),簡稱AOV網路 以頂點來代表工作項目 A、B、C、D、E分別代表五個工作項目 要待 A、B 都完成之後 C 才跟隨A、B 之後完成,因此稱A、B 為C的立即先行者(Immediate Predecessor) C為 A、B 的立即後繼者(Immediate Successor) 拓樸排序:維持AOV網路上各頂點之先後關係並依工作項目完成之先後加以排序 拓樸排序結果為 A、B、C、D、E 或 B、A、C、D、E。

有趣的圖形問題 柯尼斯伯格之橋 是否有人可以跨越7座橋去拜訪四個城市,且每座橋只經過一次 ? 尤拉定理:每個頂點的分支度皆為偶數時才可以

有趣的圖形問題 彌爾頓(Hamilton)圖形 圖形中是否存在一條路徑可以拜訪每個頂點恰好一次? 左圖:從 A 出發,經 B、C 到 D 恰好拜訪每個城市一次 左圖:無解 為漢彌爾頓圖形及尤拉圖形 非漢彌爾頓圖形但為尤拉圖形

有趣的圖形問題 平面圖 定理1:一個平面圖的區域度數總和等於兩倍邊數和。 定理2:(尤拉公式)一個平面圖滿足下列公式 頂點個數 - 邊數個數 + 區域個數 = 2 定理3:一個平面圖若邊的個數大於等於2,則滿足 3/2 * 區域個數 ≦ 邊的個數 ≦ 3 * 頂點個數 – 6 定理4:(庫托斯基定理) 一個圖形是非平面的若且唯若它含有一個和K3或K5同構之子圖, 其中 K3,K5均為設施圖。  

有趣的圖形問題 平面圖 (a)與(b)為平面圖 (c)非平面圖

有趣的圖形問題 彩色圖 N-可著色:一平面圖若最少要用 N 種顏色才能使相鄰區域之顏色互異 4-可著色 (a)相當於(b),是非平面圖,無法著色 (c)可改成(d),為一平面圖,可以著色