首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

数据结构有关问题,实在不知道哪错了,希望大家给瞧瞧

2012-12-29 
数据结构问题,实在不知道哪错了,希望大家给瞧瞧,看上去挺乱,但一些变量都是用的汉语拼音或拼音缩写,我在出

数据结构问题,实在不知道哪错了,希望大家给瞧瞧,
看上去挺乱,但一些变量都是用的汉语拼音或拼音缩写,我在出问题的地方加了注释了希望大家可以给看看怎么改改就对了。
#include<stdio.h>
typedef char dingdian;
typedef int quanzhi;
#define zuidadds 100
#define zuidazhi 10000;
typedef struct{
dingdian D[zuidadds];
quanzhi Q[zuidadds][zuidadds];
int shijidds,bians;
}wang;
int dingdwz(wang W,dingdian v){
int i;
for(i=0;i<W.shijidds;i++)
if(W.D[i]==v)
return i;
 return -1;
}
void creatwang(wang W){
int i,j,k;
printf("请输入实际顶点个数,以及边数\n");
scanf("%d,%d",&W.shijidds,&W.bians);
getchar();
for(i=0;i<W.shijidds;i++){
printf("输入顶点");
scanf("%c",&W.D[i]);
getchar();}
for(i=0;i<W.shijidds;i++){
for(j=0;j<W.shijidds;j++){
W.Q[i][j]=zuidazhi;
}
}
for(k=0;k<W.bians;k++){
dingdian v1,v2;
quanzhi x;
printf("请输入第%d条边依附的顶点及权值\n",k+1);
scanf("%c,%c,%d",&v1,&v2,&x);
getchar();
i=dingdwz(W,v1);
j=dingdwz(W,v2);
W.Q[i][j]=x;
W.Q[j][i]=W.Q[i][j];
printf("%d,%d\n",i,j);
}
}
void DFS(wang W,int i){
int w;
int visit[zuidadds];
for(i=0;i<zuidadds;i++){
visit[i]=0;
}
printf("W.D[i]");
visit[i]=1;
for(w=0;w<W.shijidds;w++){
if((W.Q[i][w]!=zuidazhi)&&(visit[w]==0)) DFS(W,w);//此句报错:{syntax error : missing ')' before ';'     syntax error : missing ';' before ')'}报了这两个错
}
}
void main(){
wang W;
creatwang(W);
printf("********************************无向网创建完成************************************");
printf("深度优先遍历");
DFS(W,1);
}

[解决办法]
数据结构有关问题,实在不知道哪错了,希望大家给瞧瞧
http://bbs.csdn.net/topics/390307606?page=1#post-393135331
[解决办法]
#include<stdio.h>
 typedef char dingdian;
 typedef int quanzhi;
 #define zuidadds 100
 #define zuidazhi 10000
 typedef struct wang{
 dingdian D[zuidadds];
 quanzhi Q[zuidadds][zuidadds];
 int shijidds,bians;
 }wang;
 int dingdwz(wang W,dingdian v){
 int i; 
for(i=0;i<W.shijidds;i++)
 if(W.D[i]==v)
 return i;
  return -1;
 }
 void creatwang(wang W){
 int i,j,k;
 printf("请输入实际顶点个数,以及边数\n");
 scanf("%d,%d",&W.shijidds,&W.bians);
 getchar();
 for(i=0;i<W.shijidds;i++){
 printf("输入顶点");
 scanf("%c",&W.D[i]);
 getchar();}
 for(i=0;i<W.shijidds;i++){
 for(j=0;j<W.shijidds;j++){
 W.Q[i][j]=zuidazhi;
 }
 }
 for(k=0;k<W.bians;k++){
 dingdian v1,v2;
 quanzhi x;
 printf("请输入第%d条边依附的顶点及权值\n",k+1);
 scanf("%c,%c,%d",&v1,&v2,&x);
 getchar();
 i=dingdwz(W,v1);
 j=dingdwz(W,v2);
 W.Q[i][j]=x;
 W.Q[j][i]=W.Q[i][j];
 printf("%d,%d\n",i,j);
 }
 }
 void DFS(wang W,int i){
 int w;
 int visit[zuidadds];
 for(i=0;i<zuidadds;i++){
 visit[i]=0;
 }
 printf("W.D[i]");
 visit[i]=1;
 for(w=0;w<W.shijidds;w++){


 if((W.Q[i][w]!=zuidazhi)&&(visit[w]==0)) DFS(W,w);//此句报错:{syntax error : missing ')' before ';'     
 //syntax error : missing ';' before ')'}报了这两个错
 }
 } 
void main(){
 wang W;
 creatwang(W);
 printf("********************************无向网创建完成************************************");
 printf("深度优先遍历");
 DFS(W,1);
 }
[解决办法]
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出

热点排行
Bad Request.