正在加载图片...
采用邻接矩阵表示法,构造无向网 Status CreateUDN(MGraph &G) scanf(&G. vexnum, &G arcum, &Infoflag); I* for(i-0;i<G. vexnum; i++)scanf(&G. vexs[il 构fori=0;i<G. vexnum;i+)/*邻接矩阵初始化* forG=0;j<G. vexnum: j++) if (i!=j) Garcs=Max Data, NULL G arcs[l=(0, NULL; for(k=0; k<G arcum; k++) scanf(&vl, &v2, &w); i=Locate Vex(G, vI); j=Locate vex(G, v2); G arcs[jl. adj=w;/弧<v1,v2>的权值* if(infoflag) input( G arcs[jj. information) 19 G.ares[jlliI=G arcs[illil; 3 return OK: 邻接链表 数 据 图的邻接链表存储结构是一种顺序分配和链 式分配相结合的存储结构:一部分是链表; 构 另一部分是向量 链表部分:每个顶点对应一个链表,共有n 个链表; 向量部分:用于存储n个链表的表头结点。 4 20 4 4vs-2一10 数 据 结 构 之 图 19 采用邻接矩阵表示法,构造无向网 Status CreateUDN(MGraph &G){ scanf(&G.vexnum,&G.arcnum,&Infoflag); for(i=0;i<G.vexnum;i++) scanf(&G.vexs[i]); for(i=0;i<G.vexnum;i++) / *邻接矩阵初始化 */ for(j=0;j<G.vexnum;j++) if (i != j) G.arcs[i][j]={MaxData, NULL}; else G.arcs[i][j]={0, NULL}; for(k=0;k<G.arcnum;k++){ scanf(&v1,&v2,&w); i=LocateVex(G,v1); j=LocateVex(G,v2); G.arcs[i][j].adj=w; /*弧<v1,v2>的权值 */ if(infoflag) input(*G.arcs[i][j].information); G.arcs[j][i]=G.arcs[i][j]; } return OK; } 数 据 结 构 之 图 20 ¾ 邻接链表 ¾ 图的邻接链表存储结构是一种顺序分配和链 式分配相结合的存储结构:一部分是链表; 另一部分是向量。 ¾ 链表部分:每个顶点对应一个链表,共有n 个链表; ¾ 向量部分:用于存储n个链表的表头结点。 V1 V2 V4 V5 V3 0 v1 1 v2 2 v3 3 v4 4 v5 3 1 ^ 2 0 ^ 2 1 ^ 4 3 4 2 0 ^ 1 ^
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有