邻接表表示的图: #include"stdio
h" #include"stdlib
h" #define MaxVertexNum 50 //定义最大顶点数 typedef struct node{ //边表结点 int adjvex; //邻接点域 struct node *next; //链域 }EdgeNode; typedef struct vnode{ //顶点表结点 char vertex; //顶点域 EdgeNode *firstedge; //边表头指针 }VertexNode; typedef VertexNode AdjList[MaxVertexNum]; //AdjList 是邻接表类型 typedef struct { AdjList adjlist; //邻接表 int n,e; //图中当前顶点数和边数 } ALGraph; //图类型 //=========建立图的邻接表======= void CreatALGraph(ALGraph *G) { int i,j,k; char a; EdgeNode *s; //定义边表结点 printf("Input VertexNum(n) and EdgesNum(e): "); scanf("%d,%d",&G->n,&G->e); //读入顶点数和边数 fflush(stdin); //清空内存缓冲 printf("Input Vertex string:"); for(i=0;in;i++) //建立边表 { scanf("%c",&a); G->adjlist[i]
vertex=a; //读入顶点信息 G->adjlist[i]
firstedge=NULL; //边表置为空表 } printf("Input edges,Creat Adjacency List\n"); for(k=