图遍历的程序有问题。
程序代码:
#include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<string.h> #define MAX_VERTEX_NUM 20 typedef int VertexType; typedef struct ArcNode { int adjvex; struct ArcNode *nextarc; }ArcNode; typedef struct Vnode { VertexType data; ArcNode *firstarc; }VNode,AdjList[MAX_VERTEX_NUM]; int n; typedef enum{FALSE=0,TURE=1} boolean; boolean visited[MAX_VERTEX_NUM]; //以上是结构体的定义。 void creat(AdjList *g) { ArcNode *p,*q; int m,s,d,i; printf("请输入定点和边数"); scanf("%d,%d",&n,&m); for(i=1;i<=n;i++) { g[i].data=i; //出问题的就是这里 提示 request for member 'data'in '*(g++(i*160))',which is of non_aggregate type vnode[20] g[i].firstarc=NULL; } for(i=1;i<=m;i++) { printf("第%d条边的起始顶点编号和终止顶点编号"); scanf("%d,%d",&s,&d); while(s<1||s>n||d<1||d>n) { printf("error,aganin"); scanf("%d,%d",&s,&d); } p=malloc(sizeof(ArcNode)); p->adjvex=d; p->nextarc=NULL; if(!g[s].firstarc) { g[s].firstarc=p; } else { q=g[s].firstarc; while(q->nextarc) q=q->nextarc; q->nextarc=p; } } }
求解阿求解!!!!!!!