作者在 2018-11-20 19:50:03 发布以下内容
求大神帮助!
数据结构中用C语言写的的建立无向图的邻接表部分代码
问题: 怎么理解建立无向图邻接表插入节点v1,v2的C程序代码部分,最好画图分析?
插入节点V1,v2的代码部分应该怎样理解,有点困惑
//建立无向图邻接表的部分源代码
typedef struct node{
int adjvex;
struct node *next;
}ARC;
typedef struct vex
{
int vertex;
ARC *first;
}VEX;
VEX adj[100];
int create()
{
ARC *p;
int arcnum,vexnum,k,v1,v2;
printf("请输入顶点数和变数(输入格式为:顶点数,边数)")
scanf("%d,%d",&vexnum,&arcnum);
for(k=1;k<=vexnum;k++)
adj[k].first=0;
for(k=0;k<arcnum;k++)
{
printf("v1,v2=");
scanf("%d,%d",&v1,&v2);
p=(ARC *)malloc(sizeof(ARC));//疑问开始部分行
p->adjvex=v2;
p->next=adj[v1].first;
adj[v1].first=p;
p=(ARC *)malloc(sizeof(ARC));
p->adjvex=v1;
p->next=adj[v2].first;
adj[v2].first=p; //疑问结束结束部分行
}
return (vexnum);
}
```
```