c语言无向图有两个参数,一个是顶点的名称,另一个是边即两顶点之间是否存在边,存在记为1,不存在记为0
存储结构如下
#define MAX 100
typedef struct Mgraph
{
char vexs[MAX];//顶点表
int arc[MAX][MAX];//边表
int num_vert,num_edge;//定点数和边数
} Mgraph,*link_graph;
void create_graph(link_graph *l)//图的建立
{
int i,j,k,w,a,t;
(*l)=(Mgraph*)malloc(sizeof(Mgraph));
printf("please input the num_vert and num_edge\n");
scanf("%d %d",&k,&w);
(*l)->num_vert=k;
(*l)->num_edge=w;
for(i=0; i<(*l)->num_vert; i++)
{
scanf("%d",&((*l)->vexs[i]));
}
for(j=0; i<(*l)->num_vert; j++)
{
for(t=0; t<(*l)->num_vert; t++)
{
scanf("%d",&a);//边的名称
(*l)->arc[j][t]=a;
}
}
}