众所周知常用的图遍历方式有深度优先遍历和广度优先遍历两种,那么我首先来看看这两种算法的具体实现,我们用G[Max][Max]表示图的邻接矩阵。
//三个全局变量
ool Visited[Max];//访问标志
void(*VisFunction)(int Vertex);//访问顶点
ool(*IsEdgeFuncion)(int G[][Max],intv,int u);//判断连边
void Depth_First(intG[][Max],void(*VisFunc)(int),bool(*IsEdgeFun)(int G[][Max],int, int),intBeginVer)
inti
for(i=0;i<Max;i++)Visited[i]=false
VisFunction=VisFunc
IsEdgeFuncion=IsEdgeFu
if(BeginVer<0||BeginVer>=Max)BeginVer=0
DFS(G,BeginVer)