主题:大虾们一定要救救我
//邻接表的建立
#include<stdio.h>
#define maxv 7
#define maxe 42
typedef struct node
{
int a; //端点序号
int w; //权值
struct node *next;
}link;
typedef struct head
{
int first;
struct node *next;
}flink;
void Creat_4(flink* GV[],int v,int e)
//建立 无向有权 图,顶点数组GV和邻接表GL
{
int i,j,k,t;
link *p;
for(i=1;i<=v;i++) //表头指针初始化,即各个顶点为空
{
GV[i]->first=i;
GV[i]->next=NULL;
}
printf("请输入 %d 条无向有权边!\n",e);
for(k=1;k<=e;k++)
{
printf("请输入第 %d 条无向有权边的始点i,终点j,权值t: ",k);
scanf("%d %d %d",&i,&j,&t);
p=new link;
p->a=j;
p->w=t;
p->next=GV[i]->next;
GV[i]->next=p;
p=new link; //因为这是无向图,可以利用无向图的对称性
p->a=i;
p->w=t;
p->next=GV[j]->next;
GV[j]->next=p;
}
}
void main()
{
int v,e,i,k;
flink* GV[maxv];
printf("请输入 无向有权 图的顶点个数和边数(v e): ");
scanf("%d %d",&v,&e);
Creat_4(GV,v,e);
}
#include<stdio.h>
#define maxv 7
#define maxe 42
typedef struct node
{
int a; //端点序号
int w; //权值
struct node *next;
}link;
typedef struct head
{
int first;
struct node *next;
}flink;
void Creat_4(flink* GV[],int v,int e)
//建立 无向有权 图,顶点数组GV和邻接表GL
{
int i,j,k,t;
link *p;
for(i=1;i<=v;i++) //表头指针初始化,即各个顶点为空
{
GV[i]->first=i;
GV[i]->next=NULL;
}
printf("请输入 %d 条无向有权边!\n",e);
for(k=1;k<=e;k++)
{
printf("请输入第 %d 条无向有权边的始点i,终点j,权值t: ",k);
scanf("%d %d %d",&i,&j,&t);
p=new link;
p->a=j;
p->w=t;
p->next=GV[i]->next;
GV[i]->next=p;
p=new link; //因为这是无向图,可以利用无向图的对称性
p->a=i;
p->w=t;
p->next=GV[j]->next;
GV[j]->next=p;
}
}
void main()
{
int v,e,i,k;
flink* GV[maxv];
printf("请输入 无向有权 图的顶点个数和边数(v e): ");
scanf("%d %d",&v,&e);
Creat_4(GV,v,e);
}