/******************************* * * Author: Wang Yong * Blog: http://www.cnblogs.com/newwy * ********************************/ #include <stdio.h> #define MAXV 100 //定义最大顶点个数 //邻接矩阵的数据类型 typedef char ElemType; typedef struct { int no; //顶点编号 ElemType info; //顶点其他信息 }VertexType; //顶点类型 typedef struct //图的定义 { int edges[MAXV][MAXV]; //邻接矩阵 int n,e; //分别为顶点数和边数 VertexType vexs[MAXV]; //存放顶点信息 }MGraph; void CreateMat(MGraph &g,int A[][MAXV],int n)//创建图的邻接矩阵; { int i,j; g.n = n; g.e = 0; for(i = 0 ; i < n; i++) for(j = 0 ; j < n ; j++) { g.edges[i][j] = A[i][j]; if(g.edges[i][j] != 0) g.e++; //边数+1 } } void DisMat(MGraph g) { int i,j; for(i = 0 ; i < g.n;i++) { for(j = 0 ; j < g.n;j++) printf("%4d",g.edges[i][j]); printf("\n"); } } int main() { MGraph g; printf("请输入顶点的数目:"); int n; scanf("%d",&n); int A[100][100]; int i,j; for(i = 0; i < n;i++) for(j = 0 ; j < n;j++) scanf("%d",&A[i][j]); CreateMat(g,A,n); DisMat(g); }