《74_邻接多重表.doc》由会员分享,可在线阅读,更多相关《74_邻接多重表.doc(3页珍藏版)》请在金锄头文库上搜索。
1、/*无向图的邻接多重表*/#define MAX_VERTEX_NUM 20typedef emnu unvisited, visited VisitIf;typedef struct Ebox VisitIf mark; / 访问标记int ivex, jvex; / 该边依附的两个顶点的位置struct EBox *ilink, *jlink; / 分别指向依附这两个顶点的下一条边InfoType *info; /该边信息指针 EBox;typedef struct VexBox VertexType data;EBox *firstedge; /指向第一条依附该顶点的边 VexBox;t
2、ypedef struct VexBox adjmulistMAX_VERTEX_NUM;int vexnum, edgenum; / 无向图的当前顶点数和边数 AMLGraph; Status CreateUDG (AMLGraph &G) int i, j, k, w, IncInfo; char v1,v2,V; EBox *p; printf(input the number for vexnum and arcnum); scanf(%d,%d,&G.vexnum,&G.edgenum);IncInfo=0; V=getchar(); /skip the enter ,same as
3、 next. printf(input %d char for vexs n,G.vexnum); for(i=0;iG.vexnum;+i) G.adjmulisti.data=getchar(); V=getchar(); for(i=0; iG.vexnum; +i) G.adjmulisti.firstedge=NULL; printf(input %d arc(char,char) n,G.edgenum); for(k=0; kivex=i; p-jvex=j; p-ilink = G.adjmulisti.firstedge;p-jlink = G.adjmulistj.firstedge; G.adjmulisti.firstedge = G.adjmulistj.firstedge = p; /if /for return OK;