| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 543 人关注过本帖
标题:[原创]小错误大问题!!
只看楼主 加入收藏
zhangliang04
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-4-22
收藏
 问题点数:0 回复次数:3 
[原创]小错误大问题!!

#include<stdio.h>
#include<string.h>
#define MAX_VEX 20
#define TURE 1
#define FALSE 0
#define ERROR 0
#define NULL 0
typedef int status;
typedef struct ArcNode{
int adjvex;
int weight;
struct ArcNode *nextarc;
}ArcNode;
typedef struct Vnode{
char date;
ArcNode * firstarc;
}Vnode,Adjlist;
typedef struct{
int vexnum;
int arcnum;
Adjlist vertices[ MAX_VEX];
}Algrapgh;
///////////////////
int Locatevex(Algrapgh G,char v)
{
for(int i=0;i<G.vexnum;i++)
if(G.vertices[i].date==v)
return i;
else {
printf("找不到顶点位置\n");
return ERROR;
}


}
/////////////////////
void CreatAlgrapgh(Algrapgh & G)
{ //以邻接表的形式构造图
char v1,v2;
int w;
ArcNode *p;
scanf("&G.vexnum,&G.arcnum");
for(int i=0;i<G.vexnum;i++)
{ scanf (" &G.vertices[i].date,");
G.vertices[i].firstarc=NULL;
}
for(int k=0;k<G.arcnum;k++)
{ int i=0;int j=0;
scanf(&v1,&v2,&w);
i=Locatevex(G,v1);
j=Locatevex(G,v2);
p=new ArcNode;
if(!p)
return ;
else{
p->adjvex=j;
p->weight=w;
p->nextarc=G.vertices[i].firstarc;
G.vertices[i].firstarc=p;
}
}
//////////////////
void DFS(Algrapgh G,int v)
{//从第v个顶点深度访问
if(!visited[v])
{
visited[v]=TURE ;
printf("%c",&G.vertices[i].date);
p=G.vertices[i].firstarc;
while(p)
{
DFS(G,v);
p=p->nextarc;
}
}
}
////// ////////////
void DEFTraverse(Algrapgh G)
{//深度优先遍历
for(int v=0;v<G.vexnum;v++)
visited[v]=FALSE;//访问标志数组
for(int v=0 ;v<G.vexnum;v++)
if(!visited[v]) DFS(G,v);

}
//////////////////////


///////////////
void main()
{
Algrapgh G;
CreatAlgrapgh(G);
DEFTraverse( G)


}

我对编译产生的错误不明白?请问高手能否帮我看一下?仔细讲一下啊谢谢啊!
把改后的程序copy在上面了谢谢

搜索更多相关主题的帖子: include status 
2006-05-04 12:37
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
是大问题啊

2006-05-04 15:39
zhangliang04
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-4-22
收藏
得分:0 
[原创]

两种遍狸方法都有同样的问题!!
不不不白斑病不不懂!!!

2006-05-04 16:33
zhangliang04
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-4-22
收藏
得分:0 
[原创]

#include<stdio.h>
#include<string.h>
#define MAX_VEX 20
#define TURE 1
#define FALSE 0
#define ERROR 0
#define NULL 0
#define OK 1
int visited[MAX_VEX];
typedef int status;
typedef struct ArcNode{
int adjvex;
int weight;
struct ArcNode *nextarc;
}ArcNode;
typedef struct Vnode{
char date;
ArcNode * firstarc;
}Vnode,Adjlist;
typedef struct{
int vexnum;
int arcnum;
Adjlist vertices[ MAX_VEX];
}Algrapgh;
typedef struct Qnode{
int vex;
Qnode * next;
}Qnode,*Queueptr;
typedef struct {
Queueptr front;
Queueptr rear;
}LinkQueue;
//////////////
int Locatevex(Algrapgh G,char v)
{
for(int i=0;i<G.vexnum;i++)
if(G.vertices[i].date==v)
return i;
else {
printf("找不到顶点位置\n");
return ERROR;
}


}
/////////////////////
void CreatAlgrapgh(Algrapgh & G)
{ //以邻接表的形式构造图
char v1,v2;
int w;
ArcNode *p;
scanf("&G.vexnum,&G.arcnum");
for(int i=0;i<G.vexnum;i++)
{ scanf (" &G.vertices[i].date,");
G.vertices[i].firstarc=NULL;
}
for(int k=0;k<G.arcnum;k++)
{ int i=0;int j=0;
scanf(&v1,&v2,&w);
i=Locatevex(G,v1);
j=Locatevex(G,v2);
p=new ArcNode;
if(!p)
return ;
else{
p->adjvex=j;
p->weight=w;
p->nextarc=G.vertices[i].firstarc;
G.vertices[i].firstarc=p;
}
}
/////////////////// ///////
void InitQueue(LinkQueue &Q)
{
Qnode * p;
p=new Qnode ;
p->next=NULL;
if(!p) return;
else
Q.front=Q.rear=p;
}
//////////////
status EmptyQueue(LinkQueue &Q)
{
if(Q.front==Q.rear)
return OK;
return ERROR;
}
status EnQueue(LinkQueue &Q,int v)
{
Qnode * p;
p=new Qnode ;
if(!p) return ERROR;
else{
p->vex=v;
p->next=NULL;

Q.rear->next=p;
Q.rear=p;
return OK;
}

}
status DeQueue(LinkQueue &Q,int & v)
{
Qnode * p;
p=new Qnode;
if(!p)
return ERROR;
else{
p=Q.front->next;
v=p->vex;
Q.front->next=p->next;
if( p==Q.rear)
Q.rear=Q.front;
return OK;
}

}
void WEFTravers(Algrapgh G)
{//广度优先遍历
ArcNode * p;
for(int v=0;v<G.vexnum;v++)
visited[v]=FALSE;
InitQueue(Q);
for(int i=0;i<G.arcnum;i++)
{ if(!visited[i])
EnQueue(Q,i);
while(!EmptyQueue(Q))
{ int w;
DeQueue(Q,w);
if(!visited[w])
printf("访问%c",G.vertices[w].date);
for(p=G.vertices[w].firstarc;p!=NULL; p=p->nextarc;)
if(!visited[w])
EnQueue(Q,w);
}
}

}
///////////////////////
void main()
{
Algrapgh G;
CreatAlgrapgh(G);
WEFTravers(G);


}

2006-05-04 16:34
快速回复:[原创]小错误大问题!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038453 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved