廣度優先搜尋 鄰接矩陣

2021-09-02 21:49:42 字數 1227 閱讀 9286

需要了解的是,圖的廣度搜尋遍歷類似於二叉樹的層次遍歷,用到了隊的操作

**如下

#include

#include

#define ok

1#define error

0#define true

1#define false

0#define maxvex

100typedef int datatype;

/*設定隊資料型別,可修改*/

typedef int vextype;

typedef int edgetype;

typedef structqueue;

/*定義棧結構體*/

typedef structmgraph;

/*鄰接矩陣*/

void

ini_queue

(queue *q)

int in_queue

(queue *

q,datatype e)

else

return

false;}

int empty_queue

(queue q

)int out_queue

(queue *

q,datatype *e)

return

true;}

int creat_mgraph

(mgraph *m)

returnok;

}void

mprint

(mgraph m

)printf

("________________________________________\n");

}int visit[

maxvex]=

;/*visit陣列標記頂點訪問情況*/

int bfsm

(mgraph m

,datatype v

)returnok;

/*當隊中不在有元素,則遍歷結束*/

}

測試**

int main()

return0;

}/*樣例輸入:

5 41 2 3 4 5

1 32 3

2 52 4

以第三個結點開始: 3

得到 3 1 2 4 5

*/

廣度優先搜尋鄰接矩陣表示 (C語言)

在圖論演算法中圖的表示主要有有鄰接矩陣和鄰接表兩種表示法,在這篇文章之前,已經發布了dijkstra演算法的鄰接表表示法 dijkstra演算法的鄰接表表示 兩種表示法的演算法思路是一樣的,只是表示的方式不同而帶來了 表示上的細微區別。個人認為鄰接矩陣的表示法更為簡潔,有鄰接表有些繁瑣。由於思路相似...

深度優先遍歷(鄰接矩陣)

problem description 無向連通圖的頂點值為字元型且互不相等,採用鄰接矩陣儲存。請從儲存下標為0的頂點開始深度優先遍歷,在選取下乙個未被訪問的鄰接點時,優先選擇儲存下標小的頂點,輸出該遍歷序列。input 有多組資料,每組第一行為兩個整數n和e,表示n個頂點和e條邊 0using n...

檢驗深度優先和廣度優先的程式 鄰接矩陣儲存結構

圖的遍歷 對圖的搜尋就是對圖中頂點的遍歷。圖中各頂點的關係比較複雜 乙個頂點可能有多 個鄰接頂點,也可能是獨立頂點 非連通圖 為了不重複地訪問所有頂點,需設立乙個訪 問標誌陣列visited,並置其初值為false 未被訪問 遍歷時只訪問那些未被訪問過的 頂點,且在訪問後,將其訪問標誌的值改為tru...