福建广播电视大学实验报告(学科:数据结构)姓名单位班级学号实验日期成绩评定教师签名批改日期
实验名称:实验四图的存储方式和应用
4.1建立图的邻接矩阵
【问题描述】
根据图中顶点和边的信息编制程序建立图的邻接矩阵。
【基本要求】
(1)程序要有一定的通用性。
(2)直接根据图中每个结点与其他结点的关联情况输入相关信息,程序能自动形成邻接矩阵
【测试用例】
【实现提示】
(1)对图的顶点编号。
(2)在上图中,以顶点1为例,因为顶点2,3,4与顶点1关联,可以输入信息1 2 3 4,然后设法求出与顶点1关联的结点,从而求得邻接矩阵中相应与顶点1的矩阵元素。
实验图4-1
设计程序代码如下:
#include<stdio.h>
#define MaxVertexNum 5
#define MaxEdgeNum 20
#define MaxValue 1000
typedef int VertexType;
typedef VertexType vexlist [MaxVertexNum];
typedef int adjmatrix [MaxVertexNum] [MaxVertexNum];
void Createl(vexlist Gv,adjmatrix GA,int n,int e)
{
int i,j,k,w;
printf("输入%d个顶点数据\n",n);
for(i=0;i<n;i++) scanf("%d",&Gv[i]);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(i==j) GA[i][j]=0;
else GA[i][j]=MaxValue;
}
Printf(“输入一条边的两端点序号i和j及边上的权w\n”);
printf("输入%d条无向带权边\n",e);
for(k=1;k<=e;k++){
scanf("%d%d%d",&i,&j,&w);
GA[i][j]=GA[j][i]=w;
}
}
void main()
{
vexlist vl;
adjmatrix a;
Createl(vl,a,5,8); }。