创建一个建立用邻接表表示的无向图
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{int adjvex;struct node *next;
}Anode;
typedef struct
{char vertex;Anode *link;
}Unode;
typedef struct
{Unode adjlist[100];int vexnum,arcnum;
}Adjgraph;
Adjgraph creat()
{Anode *p;int vexnum,arcnum;
}Adjgraph;Adjgraph create(){Anode *p;int i,s,d;Adjgraph ag;printf("请输入顶点和边的数量:");scanf("%d,%d",&ag.vexnum,&ag.arcnum);getchar();//吸收回车for(i=0;i<ag.vexnum;i++)//输入顶点信息{printf("请输入点的值:");scanf("%c",&ag.adjlist[i].vertex);getchar();ag.adjlist[i].link=NULL;}for(i=0;i<ag.arcnum;i++){printf("请输入边的序号:");scanf("%d,%d",&s,&d);//前插法p=(Anode *)malloc(sizeof(Anode));p->adjvex=d;p->next=ag.adjlist[s].link;ag.adjlist[s].link=p;p=(Anode *)malloc(sizeof(Anode));p->adjvex=s;p->next=ag.adjlist[d].link;ag.adjlist[d].link=p;}return ag;}main(){Adjgraph ag;ag=create();}
由于输出比较麻烦就暂时不打印输出了(可以参考之前的图文演示知道流程就可以了)。