#include <iostream>
using namespace std;
#define Maxsize 100
typedef char VertexType;
typedef int EdgeType;
type struct{
VertexType Vex[Maxsize];
EdgeType edge[Maxsize][Maxsize];
int vexnum,arcnum;
}MGraph;
bool visited[Maxsize];
void BFS(MGraph *G,int v){
int i;
Queue Q;
InitQueue(Q);
visit(v);
visited[v]=True;
Enqueue(&Q,v);
while(!IsEmpty(Q)){
Dequeue(&Q,v);
for(i=0;i<G->vexnum;i++)
if(visited(i)==False&&G->edge[v][i]){
visit(i);
visited[i]=True;
Enqueue(&Q,i);
}
}
}
void DFS(MGraph *G,int v){
visit(v);
visited[v]=True;
int i;
for(i=0;i<G->vexnum;i++){
if(G->edge[v][i]&&visited[i]==False)
DFS(G,i);
}
}
利用邻接矩阵实现图的BFS和DFS
猜你喜欢
转载自blog.csdn.net/KK_2018/article/details/109756423
今日推荐
周排行