[Data Structure][Graph] - Traversal - BFS - iT 邦幫忙
文章推薦指數: 80 %
圖形的走訪Traversal 指從某個頂點作為起點,依照某種順序,一個一個拜訪(visit)所有能到達的頂點。
走訪的順序分為: 廣度優先(Breadth First Search) ...
2019iT邦幫忙鐵人賽
DAY
8
0
自我挑戰組
學習資料結構30天系列第
8篇
[DataStructure][Graph]-Traversal-BFS
2019鐵人賽
bfs
smalloneeeee
2018-10-2220:25:232161瀏覽
圖形的走訪Traversal
指從某個頂點作為起點,依照某種順序,一個一個拜訪(visit)所有能到達的頂點。
走訪的順序分為:廣度優先(BreadthFirstSearch)和深度優先(DepthFirstSearch)
BFS
走訪的順序為將某個頂點視為起點,接著拜訪和起點相鄰的所有頂點,再走訪與起點相鄰的頂點的相鄰頂點,也就是在走訪更外一層的意思,持續更外層找相鄰頂點,直到所有連通頂點都被走訪過了。
由內而外,一層一層走訪的概念可以使用佇列結構。
以下圖為例子
其中一組拜訪順序為
A
[B,C,D]
[G,H,F,E]
[I]
起點
第1層
第2層
第3層
動作說明
Queue
已走訪的頂點
(0)初始狀態
(前)(尾)
無頂點
(1)走訪頂點A,Enquene(A)
A
A
(2)Dequeue得到A,將與A相鄰且未被拜訪的頂點(B、C、D)逐一拜訪,並且Enqueue
B、C、D
A、B、C、D
(3)Dequeue得到B,B沒有與任何頂點相鄰
C、D
A、B、C、D
(4)Dequeue得到C,C與G、H相鄰且未被拜訪,所以Enqueue(G)、(H)
D、G、H
A、B、C、D、G、H
(5)Dequeue得到D,D與E、F相鄰且未被拜訪,所以Enqueue(E)、(F)
G、H、E、F
A、B、C、D、E、G、H、E、F
(6)Dequeue得到G,G與C、H、F相鄰,但都被拜訪過了
H、E、F
A、B、C、D、E、G、H、E、F
(7)Dequeue得到H,G與C、G、F相鄰,但都被拜訪過了
E、F
A、B、C、D、E、G、H、E、F
(8)Dequeue得到E,E與D相鄰,但被拜訪過了
F
A、B、C、D、E、G、H、E、F
(9)Dequeue得到F,F與G、I相鄰,但I沒被拜訪過,所以Enqueue(I)
I
A、B、C、D、E、G、H、E、F、I
(10)Dequeue得到I,I與F相鄰,但被拜訪過了
空
A、B、C、D、E、G、H、E、F、I
(11)Queue為空,停止
參考
細談資料結構第六版
ISBN978-986-312-014-8
留言
追蹤
檢舉
上一篇
[DataStructure][Graph]-Representation
下一篇
[DataStructure][Graph]-Traversal-DFS
系列文
學習資料結構30天
共30篇
目錄
RSS系列文
訂閱系列文
20人訂閱
26
[DataStructure][Sort]-SelectionSort
27
[DataStructure][Sort]-InsertionSort
28
[DataStructure][Sort]-MergeSort
29
[DataStructure][Sort]-QuickSort
30
[DataStructure][Search]-BinarySearch
完整目錄
尚未有邦友留言
立即登入留言
iT邦幫忙鐵人賽
參賽組數
1087組
團體組數
52組
累計文章數
20485篇
完賽人數
572人
鐵人賽最新文章
資料驗證(golang)(Day23)
.NetCoreWebApi_筆記22_Swagger自訂文件並讀取API註解描述
[Day??]2021iThome鐵人賽-頒獎典禮@2022.01.08‧輔仁大學
[Day33]HexoxNexT-顯示最新文章、導入GoogleAnalytics的坑
【Day31】新加坡工作後續的時程
重構原本的內容(golang)(Day22)
Laravel-jQueryAJAX範例
2022/1/2更新
.NetCoreWebApi_筆記21_Swagger及OpenAPI介紹與配置使用方式_API管理與測試探討
.NetCoreWebApi_筆記20_api結合ADO.NET資料庫操作part8_新聞文章查詢
前往鐵人賽
技術推廣專區
[Day2]抓取每日收盤價
[Day1]基本工具安裝
利用python取得永豐銀行API的Nonce
[Day03]tinyML開發板介紹
永豐金融API測試員
[Day01]在享受tinyML這道美食之前
[Day3]使用ta-lib製作指標
[Day4]函數打包與買進持有報酬率試算
計算API所需要的參數:HashID
計算API所需要的參數:IV
前往鐵人賽
熱門問題
中華電信企業資安攻擊名稱HTTP-APACHE-LOG4j2-BODY6-RCE
40人小公司用的郵件伺服器
急救!將ImageView傳到另一個頁面
關於團隊合作
正航ERP相關問題
資安宣導文案
請問有哪位好心人能借一下百度帳號...
請教SQL大師,如何在GROUPBY分群裡找出組別最多筆數量的組別名稱
[已解決]急!!!csv匯入MySQLWorkbench出現錯誤訊息請問如何解決
C#如何將資料庫的每個字元從原本的(ascii編碼)逐一轉成(utf8編碼)
IT邦幫忙
站方公告
【2021iThome鐵人賽】登登登!究竟獎落誰家,2021iThome鐵人賽得獎名單正式揭曉
熱門tag
看更多
13th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
2018鐵人賽
javascript
2017鐵人賽
windows
php
python
windowsserver
linux
c#
程式設計
資訊安全
css
vue.js
sql
分享
熱門回答
40人小公司用的郵件伺服器
關於團隊合作
資安宣導文案
SVN版本控制的選擇
python檔案計算問題
[已解決]急!!!csv匯入MySQLWorkbench出現錯誤訊息請問如何解決
C#如何將資料庫的每個字元從原本的(ascii編碼)逐一轉成(utf8編碼)
正航ERP相關問題
為什麼Visualstudio查詢資料庫資料會顯示
中華電信企業資安攻擊名稱HTTP-APACHE-LOG4j2-BODY6-RCE
熱門文章
【Day31】新加坡工作後續的時程
2021法遵科技與電腦稽核專題競賽-賀雲科大、逢甲、北商大、中正、致理科大、亞洲科大等學校隊伍獲獎,培育智慧法遵與AI稽核人才邁向國際~
Laravel-jQueryAJAX範例
[Day33]HexoxNexT-顯示最新文章、導入GoogleAnalytics的坑
【徵才】台北中山區-知名航空貨運-資訊網管人員
重構原本的內容(golang)(Day22)
科學家與研究生的關係研究篇
[Day??]2021iThome鐵人賽-頒獎典禮@2022.01.08‧輔仁大學
30天Python自學:Day01
印表機維修五種常見故障,若遇到問題就能先自己排除了
一週點數排行
更多點數排行
海綿寶寶(antijava)
Gary(mosbbs)
raytracy(raytracy)
一級屠豬士(hitomitanaka)
Samuel(kuanyu)
ccenjor(ccenjor)
居然解出來了(partyyaya)
horace_work(horace_work)
純真的人(jer5173)
souda(souda)
×
At
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{result.label}}
{{result.account}}
關閉
延伸文章資訊
- 1Quick Guide to Graph Traversal Analysis | by Riccardo Di Sipio
Traversing a graph means exploring its structure by visiting the nodes according to some systemat...
- 2Graphs and its traversal algorithms - Tutorialspoint
The Depth First Search (DFS) is a graph traversal algorithm. In this algorithm one starting verte...
- 3Graph: Depth-First Search(DFS,深度優先搜尋)
在Binary Tree: Traversal(尋訪)中介紹過Pre-Order Traversal,其Visiting順序:「Current(V)-left(L)-right(R)」可以解讀成...
- 4Depth First Search or DFS for a Graph - GeeksforGeeks
Depth First Traversal (or Search) for a graph is similar to Depth First Traversal of a tree. The ...
- 5Graph traversal - Wikipedia
In computer science, graph traversal refers to the process of visiting (checking and/or updating)...