图的深度优先遍历

匿名 (未验证) 提交于 2019-12-02 22:59:29

建立的图有四个节点,用深度优先遍历
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

转载请标明出处:图的深度优先遍历
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!