《圖論》——廣度優先遍歷演算法(BFS)
十大演算法之廣度優先遍歷:
本文以例項形式講述了基於Java的圖的廣度優先遍歷演算法實現方法,具體方法如下:
用鄰接矩陣儲存圖方法:
1.確定圖的頂點個數和邊的個數
2.輸入頂點資訊儲存在一維陣列vet中
3.初始化鄰接矩陣;
4.依次輸入每條邊儲存在鄰接矩陣array中
輸入邊依附的兩個頂點的序號i,j;
將鄰接矩陣的第i行第j列的元素值置為1;
將鄰接矩陣的第j行第i列的元素值置為1;
廣度優先遍歷實現:
1.初始化佇列Q
2.訪問頂點v;ifVisit[v]=1;頂點v入隊Q;
3.while(佇列Q非空)
v=佇列Q的隊頭元素出隊;
w=頂點v的第一個鄰接點
while(w存在)
如果w未被訪問,則訪問頂點w;visited[w]=1;頂點w入佇列Q
w=頂點v的下一個鄰接點
如下程式碼參考此圖完成:
實現程式碼如下:
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
public class BFS {
private Object[] vet; //定義vet陣列用來存放頂點資訊
private int[][] array; //定義鄰接矩陣存放圖的頂點資訊
private int vexnum; //儲存邊的條數
private boolean[] ifVisit;//存放結點是否被訪問過
private List
相關文章
- 廣度優先遍歷圖解圖解
- 單詞接龍---快速建圖----雙向BFS(廣度優先遍歷)
- js實現深度優先遍歷和廣度優先遍歷JS
- python實現圖(基於圖的不同儲存方式)的深度優先(DFS)和廣度(BFS)優先遍歷Python
- 圖的遍歷:深度優先搜尋與廣度優先搜尋
- 深度優先遍歷,廣度優先遍歷實現物件的深拷貝物件
- 【演算法】廣度/寬度優先搜尋(BFS)演算法
- 圖論系列之「廣度優先遍歷及無權圖的最短路徑(ShortPath)」圖論
- bfs廣度優先搜尋
- 演算法競賽——BFS廣度優先搜尋演算法
- 寬度優先遍歷
- 廣度優先搜尋(BFS)思路及演算法分析演算法
- 基本演算法——深度優先搜尋(DFS)和廣度優先搜尋(BFS)演算法
- 圖論系列之「深度優先遍歷及聯通分量」圖論
- 圖論系列之「基於深度優先遍歷的尋路演算法 (Path) 」圖論演算法
- python 實現二叉樹的深度&&廣度優先遍歷Python二叉樹
- (BFS廣度優先演算法) 油田問題演算法
- 圖論演算法遍歷基礎圖論演算法
- 演算法(三):圖解廣度優先搜尋演算法演算法圖解
- 速記圖的遍歷(DFS和BFS)
- 廣度優先搜尋相關面試演算法總結(非圖論方面)面試演算法圖論
- 深度優先與廣度優先
- 十、深度優先 && 廣度優先
- Node中的兩種遍歷方式-深度優先和廣度優先(附Node刪除檔案例子進行詳解)
- 深度和廣度優先搜尋演算法演算法
- 演算法筆記(廣度優先搜尋)演算法筆記
- 0演算法基礎學演算法 搜尋篇第二講 BFS廣度優先搜尋的思想演算法
- 【PTA】鄰接矩陣儲存圖的深度優先遍歷矩陣
- 資料結構-樹以及深度、廣度優先遍歷(遞迴和非遞迴,python實現)資料結構遞迴Python
- 圖的廣度優先搜尋和深度優先搜尋Python實現Python
- ybtoj:廣度優先搜尋
- 廣度優先與深度優先類似嗎? - Mario
- L2-006 樹的遍歷(BFS)
- 深度DFS 和 廣度BFS搜尋演算法學習演算法
- 用python深度優先遍歷解迷宮問題Python
- 非遞迴實現先序遍歷和中序遍歷遞迴
- js版本的(廣、深)度優先搜尋JS
- c++ 廣度優先搜尋(寬搜)C++
- 再來一篇深度優先遍歷/搜尋總結?