邻接表创建有向图
int CreateGraph(ALGraph *G){//采用邻边表表示法创建有向图G
printf("开始创建有向网\n");
printf("请输入顶点数和边数:\n");
scanf("%d%d",&G->vexnum,&G->arcnum);//输入总顶点总边数
fflush(stdin);
int n;
for(n=0;n<G->vexnum;n++){
printf("\n请输入第%d个顶点:",n+1);
G->vertices[n].data=getche();
G->vertices[n].firstarc=NULL;
}
//创建邻接表
int i,j;
for(n=0;n<G->arcnum;n++){
printf("\n请输入第%d条边关联的顶点和权值,以空格间隔:",n+1);
fflush(stdin);
VerTexType v1,v2;
OtherInfo w;
scanf("%c %c %d",&v1,&v2,&w);
i=LocateNode(*G,v1);
j=LocateNode(*G,v2);
ArcNode *p1=(ArcNode *)malloc(sizeof(ArcNode));//生成一个新的边结点*p1
p1->adjvex=j; //邻接点序号为j
p1->info=w;
p1->nextarc=G->vertices[i].firstarc;
G->vertices[i].firstarc=p1;
}
return 0;
}