#define MAX_VERTEXT_NUM 100
#include "stdio.h"
#include "alloc.h"
#include "string.h"
typedef struct arcnode
{
int adjindex;
int weight;
struct arcnode * next;
}arc;
typedef struct vertexnode
{
char info[10];
arc * firstarc;
} vertex;
typedef struct
{
vertex vertexlist[MAX_VERTEXT_NUM];
int vertexnum;
int arcnum;
}graph;
void initgraph(graph *gh)
{
int i,adjindex;
int weight;
char info[10];
arc *tmparc,*lastarc;
printf("\nInput VertextNum:");
scanf("%d",&(gh->vertexnum));
printf("\nInput ArcNum:");
scanf("%d",&(gh->arcnum));
printf("\nInput Vertext Name:");
for(i=0;i<gh->vertexnum;i++)
{
scanf("%s",info);
strcpy((gh->vertexlist[i]).info,info);
(gh->vertexlist[i]).firstarc=NULL;
}
printf("\nInput Arc Weight:");
for(i=0;i<gh->vertexnum;i++)
{
lastarc=NULL;
for(scanf("%d,%d",&adjindex,&weight);adjindex>=0;scanf("%d,%d",&adjindex,&weight))
{
tmparc=(arc*)malloc(sizeof(arc));
if(tmparc==NULL)
exit(-1);
tmparc->adjindex=adjindex;
tmparc->weight=weight;
(gh->vertexlist[i]).firstarc=tmparc;
tmparc->next=lastarc;
lastarc=tmparc;
}
}
printf("\nGraph Init Finished!\n");
}