c语言结构体的嵌套不明白是什么意思,下面是生成图和图的遍历的头文件
typedef char Datatype;typedef struct node
{
int adjvex;
struct node *next;
}EdgeNode;
typedef struct vnode
{
Datatype vertex;
EdgeNode *FirstEdge;
}VertexNode;
typedef struct
{
VertexNode adjlist[M];
int n,e;
}LinkedGraph;
这些结构体是什么意思?请哪位大侠帮我解释一下,不胜感激
我不太清楚这些结构体到底是什么含义。代表什么。请个路大侠指教
void creat(LinkedGraph *g,char *filename,int c)
{
int i,j,k;
EdgeNode *s;
FILE *fp;
fp=fopen(filename,"r");
if(fp)
{
fscanf(fp,"%d%d",&g->n,&g->e);
for(i=0;i<g->n;i++)
{
fscanf(fp,"%1s",&g->adjlist[i].vertex);
g->adjlist[i].FirstEdge=NULL; //那红色的地方是什么意思。青帮忙解答一下,谢谢
}
for(k=0;k<g->e;k++)
{
fscanf(fp,"%d%d",&i,&j);
s=(EdgeNode *)malloc(sizeof(EdgeNode));
s->adjvex=j;
s->next=g->adjlist[i].FirstEdge;
g->adjlist[i].FirstEdge=s;
if(c==0)
{
s=(EdgeNode *)malloc(sizeof(EdgeNode));
s->adjvex=i;
s->next=g->adjlist[j].FirstEdge;
g->adjlist[j].FirstEdge=s;
}
}
fclose(fp);
}
else
g->n=0;
}
void print(LinkedGraph g)
{
int i;
EdgeNode *p;
if(g.n)
{
for(i=0;i<g.n;i++)
{
printf("%c",g.adjlist[i].vertex);
p=g.adjlist[i].FirstEdge;
while(p)
{
printf("-->%d",p->adjvex);
p=p->next;
}
printf("\n");
}
}
}