4.网的邻接矩阵表示类似地可以定义网的邻接矩阵为:若(ij) EE(G)或 《ij> EE(G)wijA[i][i]=其它情形8网及网的邻接矩阵见图7-10。613808689680802418088278893748(a)网G5(b)网G5的邻接矩阵示意图图7-10网及邻接矩阵示意图
4. 网的邻接矩阵表示 类似地可以定义网的邻接矩阵为: wij 若(i,j)∈E(G)或〈i,j〉∈E(G) A[i][j]= ∞ 其它情形 网及网的邻接矩阵见图7-10。 3 9 4 7 8 2 7 1 2 4 6 8 9 6 1 3 (a) 网 G5 (b) 网 G5 的邻接矩阵示意图 图 7-10 网及邻接矩阵示意图 5 3 1 2 4 3 6 1 2 4 8 9 7
5.图的邻接矩阵数据类型描述图的邻接矩阵数据类型描述如下://图中顶点数#define maxn 20#definemaxe 30//图中边数typedef structgraphV[n+1];elemtype//存放顶点信息vl.v2..vn,不使用v[01存储空间//邻接矩阵intarcs[n+1][n+1]Igraph;
5. 图的邻接矩阵数据类型描述 图的邻接矩阵数据类型描述如下: #define maxn 20 // 图中顶点数 #define maxe 30 // 图中边数 typedef struct graph { elemtype V[n+1]; // 存放顶点信息v1,v2,.vn,不使用v[0]存储空间 int arcs[n+1][n+1] // 邻接矩阵 }graph;
6.建立无向图的邻接矩阵void creatadj(graph &g)(inti, j,k;for (k=1; k<=n; k++)//输入顶点信息scanf(%d",g.v[k]);for (i=l; i<=n; i++ )for (i=-1; j<=n; j++)g.arcs[i]li]=0;for (k=1; k<=e; k++)//输入一条边(i.i)( scanf(%d %d", i,j);g.arcs[i][i]=1;g.arcs[j][i]=-1;]该算法的时间复杂度为○(n2)
6. 建立无向图的邻接矩阵 void creatadj(graph &g) { int i, j,k ; for (k=1; k<=n; k++) scanf(“%d”,g.v[k]); //输入顶点信息 for (i=1; i<=n; i++ ) for (j=1; j<=n; j++) g.arcs[i][j]=0; for (k=1; k<=e; k++) { scanf(“%d %d”, i,j); //输入一条边(i,j) g.arcs[i][j]=1;g.arcs[j][i]=1;}} 该算法的时间复杂度为O(n 2)
7.建立有向图的邻接矩阵void creatadj(graph &g)( int i, j,k ;for (k=1; k<=n; k++)//输入顶点信息scanf(%d “g.v[k])for (i=l; i<=n; i++)for (j=-l; j<=n; j++)g.arcs[i]li]=0;for (k=1; k<=e; k++)//输入一条弧<ij>( scanf(%d %d", i,j);g.arcs[i][]-1;]该算法的时间复杂度为O(n2)
7.建立有向图的邻接矩阵 void creatadj(graph &g) { int i, j,k ; for (k=1; k<=n; k++) scanf(“%d “g.v[k]); //输入顶点信息 for (i=1; i<=n; i++ ) for (j=1; j<=n; j++) g.arcs[i][j]=0; for (k=1; k<=e; k++) { scanf(“%d %d”, i,j); //输入一条弧<i,j> g.arcs[i][j]=1;}} 该算法的时间复杂度为O(n 2)
8.建立无向网的邻接矩阵void creatadi(graph &g) inti,j,k; float w,for (k=1; k<=n; k++)//输入顶点信息scanf(%d",g.v[k]);for(i=l; i<=n; i++)for (j=1; j<=n; j++)g.arcs[i]i]=00;for(k=1;k<=e;k++)//输入一条边(i.i) scanf(%d %d %d",i,j,w);及权值wg.arcs[ijli]=w,g.arcs[j][i]-w;]该算法的时间复杂度为O(n2)
8.建立无向网的邻接矩阵 void creatadj(graph &g) { int i, j,k ; float w; for (k=1; k<=n; k++) scanf(“%d”,g.v[k]); //输入顶点信息 for (i=1; i<=n; i++ ) for (j=1; j<=n; j++) g.arcs[i][j]=∞; for (k=1; k<=e; k++) { scanf(“%d %d %d”,i,j,w); //输入一条边(i,j) 及权值w g.arcs[i][j]=w;g.arcs[j][i]=w;}} 该算法的时间复杂度为O(n 2)