永发信息网

图的遍历操作

答案:1  悬赏:20  手机版
解决时间 2021-11-19 03:07
图的遍历操作
最佳答案
#include
#define max 20
typedef enum{TRUE,FALSE} Boolean;
typedef struct
{
int n,e;
int edges[max][max];
char vexs[max];
}MGraph;
bool visited[max]; //主要是这里的问题

void createMGraph(MGraph *G)
{
int i,j,k;
printf("n,e\n");

scanf("%d,%d",&G->n,&G->e);

for(i=0;in;i++)
for(j=0;jn;j++)
G->edges[i][j]=0;

for(k=0;ke;k++)
{
scanf("%d,%d",&i,&j);
G->edges[i][j]=1;G->edges[j][i]=1;
}
}

void out(MGraph *G)
{
int i,j;
for(i=0;in;i++)
{for(j=0;jn;j++)
printf("%d",G->edges[i][j]);
printf("\n");
}
}

void DFS(MGraph *G,int i)
{
int j;
printf("%d\n",i);
visited[i]=true;
for(j=0;jn;j++)
if (G->edges[i][j]==1 && !visited[j])
DFS(G,j);
}

int main()
{
MGraph G;
createMGraph(&G);
out(&G);

int i;
for(i=0;i visited[i]=0;

for(i=0;i {
if(!visited[i]) {
DFS(&G,i);
}
}
//是倒是,不过我一般用的时候还是会把一些大括号都打上的,或者说一些运算符顺序,打上括号比较清楚,也不会出现一些粗心问题。

return 0;
}追问我在前面有这句话typedef enum{TRUE,FALSE} Boolean;
那后面的Boolean应该可以用。

不知道为什么,我的DFS的结果就是不出来,可是你的程序就有,我还是看不出哪里错,求指教

追答void createMGraph(MGraph *G)
{
int i,j,k;
printf("n,e");
scanf("%d,%d",&G->n,&G->e);
for(i=0;in;i++)
for(j=0;jn;j++)
G->edges[i][j]=0;
printf("edges");
for(k=0;ke;k++)
{
scanf("%d,%d",&i,&j);
G->edges[i][j]=1;G->edges[j][i]=1;
}
}
void out(MGraph *G)
{
int i,j;
for(i=0;in;i++)
{for(j=0;jn;j++)
printf("%d",G->edges[i][j]);
printf("\n");
}
}
void DFS(MGraph *G,int i)//
{
int j;
printf("%d",i);
visited[i]=TRUE;
for(j=0;jn;j++)
if (G->edges[i][j]==1 && visited[j] == FALSE)
DFS(G,j);
}
main()
{
MGraph G;
createMGraph(&G);
out(&G);
int i;//
for(i=0;i visited[i]=FALSE;//
for(i=0;i if(visited[i] == FALSE) DFS(&G,i);//这里是不是= for(i=0;i}

这里判断的时候,需要这么判断。追问改成这样就对了,我还有个问题,照这样理解typedef enum{TRUE,FALSE} Boolean;中的TRUE不是1,FALSE不是0,是这样理解吗?但是我们老师的程序就是写的!visited[i],也是能运行的,这样不就是FALSE是0了吗??
老师的:(字数限制)

Ps:我的程序里,把DFSTraverse函数写到main里面了

追答是这个顺序的问题,
TRUE = 0, FALSE = 1。 你这顺序错咯。

typedef enum{TRUE,FALSE} Boolean;

typedef enum{FALSE,TRUE} Boolean;来自:求助得到的回答
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
大POS机到底怎么样,是一清机吗
dnf哪个区是鬼区啊,开g不容易检测的
探明储量、控制储量、预测储量三者有什么关系
i7 7700 cpu 用核显玩lol低配有点卡,cpu温度
如何做好详细的购房预算?拿走不谢
为什么魅族pro5升级之后就开不了机了
6、8、5、4、 要那么加减乘除才等于24
明德小学(内江市中)地址好找么,我有些事要过
古诗冲上云霄上九天的上句是什么
一道地理题, 读华北某地地形图(图2—5—2)
怎样煮出流黄蛋
人人能手机直播游戏吗
内江十小地址有知道的么?有点事想过去!
春运k4076次深圳至成都的列车为什么2月9日与2
杜甫有诗圣之称圣解释
推荐资讯
部落冲突八本中怎么发展
暗黑2的伤害问题
请问香港亮碧丝在大陆这边合法吗?不知道亮碧
外寨村地址在什么地方,我要处理点事!
根据24÷6+5编题
请问港闸区房产证在哪儿领?
求大神啊 win8的系统
1.6*0.6*0.75换算成水是多少斤
我是个男的,我让两个男的睡过多次了该怎么办
三星s8 plus是qc2.0还是3.0的
湖南腊鱼怎么做才好吃?
路卡洗衣(锦湖豪苑店)地址好找么,我有些事要
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?