无向图的邻接矩阵是以主对角线对称的,有向 图的邻接矩阵可能是不对称的。 在有向图中: 第i行1的个数就是顶点i出度, 第j列1的个数就是顶点j的入度。 在无向图中第i行(列)1的个数就是顶点i的 度
无向图的邻接矩阵是以主对角线对称的,有向 图的邻接矩阵可能是不对称的。 在有向图中: 第 i 行 1 的个数就是顶点 i 的出度, 第 j 列 1 的个数就是顶点 j 的入度。 在无向图中, 第 i 行 (列) 1 的个数就是顶点i 的 度
网的邻接矩阵 Garcs|=w若<VV或wV)∈E 0反之 Aedge=
网的邻接矩阵 G.arcs[i][j]= Wi,j若<Vi,Vj> 或(Vi,Vj)∈E ∞ 反之
int Locate Vex(MGraph G, char u int i for (i=0; K<G. vexnum; 1++) i if(u==G.vexs return 1; 1 if(i-==G. vexnum)i printf(" Error u!n") exit(1) return o
int LocateVex(MGraph G,char u) { int i; for (i=0;i<G.vexnum;i++) { if (u = = G.vexs[i]) return i;} if (i= = G.vexnum) { printf("Error u!\n"); exit(1); } return 0; }
2)建立邻接矩阵 算法71,72.pl62~163 void CreateMGraph(MGraph &G) i int i,j, k, W; char vl, v2 printf("Input vexnum arcum scanf( % od, %d,, &G. vexnum, &G arcum) printf("Input Vertices: scanf(%os"Gvex) /for(i=0; K<G.vexnum; i++) scanf(%/oc,&G.vexsiD for(1=0; K<G. vexnum; 1++) for =0 K<G. vexnum:j ++ G arcsin=0
2)建立邻接矩阵 算法7.1,7.2,p162~163 void CreateMGraph(MGraph &G) { int i,j,k,w; char v1,v2; printf("Input vexnum & arcnum:"); scanf(“%d,%d”,&G.vexnum,&G.arcnum); printf("Input Vertices:"); scanf("%s",G.vexs); // for (i=0;i<G.vexnum;i++) // scanf("%c",&G.vexs[i]); for (i=0;i<G.vexnum;i++) for (j=0;j<G.vexnum;j++) G.arcs[i][j]=0;
for(k0; K<Garcum; k++) i printf( Input Arcs(v 1, v2 w): n") scanf( %oc%oc, %od", &vl, &v2, &w) 1=Locate Vex(G,vl) j=Locate Vex(G, v2) G arcsin=w, /Garcs=W return
for (k=0;k<G.arcnum;k++) { printf("Input Arcs(v1,v2 & w):\n"); scanf("%c%c,%d",&v1,&v2,&w); i=LocateVex(G,v1); j=LocateVex(G,v2); G.arcs[i][j]=w; //G.arcs[j][i]=w; } return; }