?? 廣度優先遍歷.txt
字號:
void traver(TD g[],int n)
{ int i;
static int visited[M];
for(i=1;i<=n;i++)
visited[i]=0;
for(i=1;i<=n;i++)
if(visited[i]==0)
bfs(g,i,visited);
} //準備工作與深度遍歷相似
void bfs(TD g[],int v,int visited[])
{ int qu[M],f=0,r=0;
JD *p;
printf("%d\n",v); //打印結點v
visited[v]=1; //v的標志數組置為1
qu[0]=v; //v入隊
while(f<=r) //對不空
{ v=qu[f++]; //v出隊(誰出隊就查找誰的所有未被處理的鄰接點,并入隊)
p=g[v].firstarc; // p指向v的第一個鄰接點
while(p!=NULL)
{ v=p->adjvex; // v表示鄰接點在數組中的下標
if(visited[v]==0)
{ visited[v]=1;
printf("%d\n",v);
qu[++r]=v; //v入隊
}
p=p->next; //繼續查找v的下一個鄰接點
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -