求一个数据结构代码 要有注释 关于图的深度遍历的 要求必修用C语言做出 5C

要求用数据结构 代码后面要有注释 底下的要求一个也不能漏

图的DFS遍历 要求: 1) 先任意创建一个图; 2) 图的DFS的递归和非递归算法的实现 3) 要求用邻接矩阵、邻接表两种结构存储实现

3个回答

hxh88888888
黄小东的csdn 回复FL94218: java改为c应该也容易
大约 5 年之前 回复
FL94218
FL94218 回复91program: 会了我还用提问么 就是不会代码才提问
大约 5 年之前 回复
91program
91program 回复FL94218: 我又没有要求用什么语言!有 Java 的,你不会将它改为你想要的语言吗?
大约 5 年之前 回复
FL94218
FL94218 第一个是用JAVA做的 第二个要求不对 没有用邻接矩阵和邻接表 你自己不能编一个么
大约 5 年之前 回复

#include
#include

typedef char vertextype;
typedef int edgetype;

#define MAXSIZE 20
int visit[10]={0};
typedef struct {
vertextype verx[MAXSIZE];
edgetype arc[MAXSIZE][MAXSIZE];
int vexnum,arcnum; //顶点数和边数

}mgraph;

int locate(mgraph *g,char v)
{
int i;
for(i=0;ivexnum;i++)
{
if(g->verx[i]==v)
{
return i;
}
}
return -1;
}

void creatgraph(mgraph *g){
int i,j,k;
char v1,v2;

scanf("%d%d",&(g->vexnum),&(g->arcnum));
fflush(stdin);

for(i=0;ivexnum;i++)
scanf("%c",&g->verx[i]);
fflush(stdin);

for(i=0;ivexnum;i++)
for(j=0;jvexnum;j++)
g->arc[i][j]=0; //邻接矩阵初始化

for(k=0;karcnum;k++)
{
scanf("%c%c",&v1,&v2);

i=locate(g,v1);
j=locate(g,v2);
g->arc[i][j]=1;
}
}
void DFS(mgraph *g,int i){
int j;
printf("%c ",g->verx[i]);
visit[i]=1;
for(j=1;jvexnum;j++)
if(g->arc[i][j]==1&&visit[j]==0)
DFS(g,j);

}

void main(){
mgraph g;
int i,j;
creatgraph(&g);
DFS(&g,0);
printf("\n");
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问