廣度優先遍歷(Breadth
設圖G的初態是所有頂點均未訪問過
v的所有鄰接點w
圖中所有和源點v有路徑相通的頂點都已訪問到為止
若G是連通圖
問為止
廣度優先遍歷類似於樹的按層次遍歷
FirstSearch)
在廣度優先搜索過程中
y
為確保先訪問的頂點其鄰接點亦先被訪問
入隊
者進行訪問並將其人隊
(
void BFS(ALGraph*G
{// 以v k 為源點對用鄰接表表示的圖G進行廣度優先搜索
int i;
CirQueue Q; //須將隊列定義中DataType改為int
EdgeNode *p;
InitQueue(&Q);//隊列初始化
//訪問源點v k
printf(
visited[k]=TRUE;
EnQueue(&Q
while(!QueueEmpty(&Q)){//隊非空則執行
i=DeQueue(&Q); //相當於v i 出隊
p=G
while(p){//依次搜索v i 的鄰接點v j (令p
if(!visited[p
printf(
visited[p
EnQueue(&Q
}//endif
p=p
}//endwhile
}//endwhile
}//end of BFS
From:http://tw.wingwit.com/Article/program/sjjg/201311/23834.html