DFS
typedef int Boolean;
Boolean visit[vermax];
void DFS(Mgraph G, i){
int j;
visit[i]=ture;
printf(“%d”,G.vexs[i]);
for (j=0;j<G.Vernon;j++){
if (G.edge[i][j]==1&&!visit[j]){
DFS(G,j);
}
}
}
void dfstraverse(Mgraph G){
int i;
for (i=0;i<G.vexnum;i++){
visit[i]=false;
}
for (i=0;i<G.vexnum;i++){
if (!visit[i]){
DFS(G,i);
}
}
}
BFS
Void BFStraverse(Mgraph G){
int i;
for (i=o;i<G.vexnum;i++){
visit[i]=false;
}
Queue Q;
iniqueue(&Q);
for (i=0;i<G.vexnum;i++){
if(!visit[i]){
Visit[i]=ture;
printf(“%d”,i);
enqueue(&Q,i);
while (!emptyqueue){
Dequeue(&Q,&j);
for (k=0;k<G.vexnum;k++){
if(G.edge[j][k]==1&&!visit[k]){
visit[k]=ture;
printf(“%d”,k);
Enqueue(&Q,k);
}
}
}
}
}
}