实验目的:
- 掌握图的基本存储方法。
- 掌握有关图的基本操作算法并用高级语言实现。
- 熟练掌握图的来两种搜索路径的遍历方法。
- 掌握图的有关应用;
#include<stdio.h>
#include<stdlib.h>
#define MAX 20 //图的最大顶点/ /
typedef int VexType;
typedef VexType Mgraph[MAX][MAX]; /Mgraph是二维数组类型标识符*/
/函数原型声明/
void creat_mg(Mgraph G);
void output_mg(Mgraph G);
Mgraph G1; /G1是邻接矩阵的二维数组名/
int n,e,v0;
/* 主函数 /
void main()
{ creat_mg(G1);
output_mg(G1);
}
/建立无向图邻接矩阵/
void creat_mg(Mgraph G)
{ int i,j,k;
printf("\n请输入无向图的顶点数和边数,如( 6,5):");
scanf("%d,%d,&n,&e");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) G[i][j]=0;
for(k=1;k<=e;k++) /组织边数的循环/
{ printf("\n请输入每条边的两个顶点编号,如(2,5):");
scanf("%d,%d,&i,&j"); / 输入一条边的两个顶点编号i,j */
G[i][j]=1; G[j][i]=1; /无向图的邻接矩阵是对称矩阵/
}
}
/* 输出邻接矩阵 */
void output_mg(Mgraph G)
{ int i,j;
for(i=1;i<=n;i++)
{ printf("\n");
for(j=1;j<=n;j++) printf("%5d",G[i][j]);
}
printf("\n");
}