建立的图有四个节点,用深度优先遍历
c语言代码如下:
#include<stdio.h>
#include<stdlib.h>
#define null 0
typedef struct{
char info[4];
int lin[4][4];
int old[4];
}Graph;
void DFS(Graph *g,int i)
{
int j;
if(g->old[i]==0)
{
printf("%c",g->info[i]);
g->old[i]=1;
for(j=0;j<4;j++)
{
if(g->lin[i][j]&&!g->old[j])
{
DFS(g,j);
}
}
}
}
int main()
{
Graph g1;
g1.info[0]=‘a’;
g1.info[1]=‘b’;
g1.info[2]=‘c’;
g1.info[3]=‘d’;
//printf("%c",g1.info[0]);
int i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
g1.lin[i][j]=null;
g1.lin[0][1]=1;
g1.lin[1][2]=1;
g1.lin[2][0]=1;
//printf("%c",g1.info[0]);
for(i=0;i<4;i++)
g1.old[i]=0;
for(i=0;i<4;i++)
DFS(&g1,i);
return 0;
}
运行输出a,b,c,d
转载请标明出处:图的深度优先遍历
文章来源: 图的深度优先遍历