📄 fad.cpp
字号:
# include <stdio.h>
# include <stdlib.h>
# define MAX 20
typedef int VexType;
typedef VexType Mgraph[MAX][MAX]; /* Mgraph是二维数组类型标识符 */
/* 函数原形声明*/
void creat_mg(Mgraph G);
void out_mg(Mgraph G);
Mgraph G1; /* G1是邻接矩阵的二维数组名 */
int n,e;
/* 主函数 */
void main()
{ creat_mg(G1); out_mg(G1); printf("\n");
}/* main */
/* 建立邻接矩阵 */
void creat_mg(Mgraph G)
{ int i,j,k,w;
printf("\n 输入顶点数,边数 n,e="); scanf("%d%d", &n,&e); /* 输入顶点数n,边数e */
for(i=1; i<=n;i++)
for(j=1;j<=n;j++){ if(i==j) G[i][j]=0; else G[i][j]=32767; }
/* 如果是网,G[i][j]=0该为G[i][j]=32767(无穷)*/
for(k=1;k<=e;k++) /* 组织边数的循环 */
{ printf("\n 输入边的两个顶点和权值vi,vj,w=");
scanf("%d%d%d", &i,&j,&w); /* 输入一条边的两个顶点编号i,j */
G[i][j]=w; G[j][i]=w; /* 无向图的邻接矩阵是对称矩阵 */
/* 如果是网,还要输入边的权值w,再让G[i][j]=w */
}
} /* creat_mg */
/* 邻接矩阵简单输出,为了检查输入是否正确 */
void out_mg(Mgraph G)
{ int i,j;
printf("\n邻接矩阵输出为:\n ");
for(i=1; i<=n;i++) /* 矩阵原样输出 */
{ printf("\n ");
for(j=1;j<=n;j++)
{ if(G[i][j]==32767) printf("%5s","∞"); else printf("%5d",G[i][j]);}
}
/* 输出所存在的边 */
for(i=1; i<=n;i++)
for(j=1;j<=n;j++)
if(G[i][j]!=32767&&G[i][j]!=0)
printf("\n 存在边< %d,%d >",i,j);
} /* out_mg */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -