iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 10
0
自我挑戰組

學習資料結構30天系列 第 10

[Data Structure][Graph] -Spanning Tree !

  • 分享至 

  • xImage
  •  

今天的主題是DFS Spanning treeBFS Spanning tree,先說說樹是什麼吧。

樹 tree 的定義

沒有環路的連通圖。

  • 此圖不是樹,因為有環路。
    https://ithelp.ithome.com.tw/upload/images/20181024/201124384BrXAv13eO.png

  • 此圖不是樹,因為不連通。
    https://ithelp.ithome.com.tw/upload/images/20181024/20112438eSnwndrJK6.png

  • 此圖為樹,既連通又沒有環路
    https://ithelp.ithome.com.tw/upload/images/20181024/20112438NZ15SLQYfG.png

展開樹(生成樹) Spanning Tree

一個連通圖形G的 Spanning Tree定義為 :

  1. T是G的子圖。
  2. T包含G所有的頂點 (V(T) = G(T))。
  3. T是一棵樹。
  • 除非G本身就是樹,否則一個連通圖的Spanning Tree可能不只有一個。
  • 以下圖G為例子,找出幾棵 Spanning Tree
    https://ithelp.ithome.com.tw/upload/images/20181024/20112438HThGobCMlj.jpg
  • Spanning Tree (1)
    https://ithelp.ithome.com.tw/upload/images/20181024/20112438zzh8qWcQgN.png
  • Spanning Tree (2)
    https://ithelp.ithome.com.tw/upload/images/20181024/20112438zsGcx96UES.jpg
  • Spanning Tree (3)
    https://ithelp.ithome.com.tw/upload/images/20181024/201124387PMbIl45Og.png
  • 此範例的Spanning Tree太多,在此僅列出3個作為舉例。

根據定義,一個連通圖的Spanning Tree,必定包含所有頂點,因此我們可以在走訪圖形的點時,將所有經過的邊逐一加入Spanning Tree中,構成 DFS Spanning treeBFS Spanning tree

  • 使用之前的圖做為例子
    https://ithelp.ithome.com.tw/upload/images/20181024/20112438dX3HcX1RsM.jpg
  • BFS Spanning tree
  • https://ithelp.ithome.com.tw/upload/images/20181024/20112438JyRyCAQcZX.jpg
  • DFS Spanning tree
  • https://ithelp.ithome.com.tw/upload/images/20181024/2011243827dhlk4Lov.jpg

參考

細談資料結構 第六版
ISBN 978-986-312-014-8


上一篇
[Data Structure][Graph] - Traversal - DFS
下一篇
[Data Structure][Graph] - Minimum Spanning Tree
系列文
學習資料結構30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言