实验12 图的基本操作-邻接矩阵

Twinkle 贡献于2015-03-28

作者 liujun  创建于2007-08-30 05:41:00   修改者dell  修改于2014-01-15 15:24:46字数4453

文档摘要: 实验目的和要求1、掌握图的存储结构:邻接矩阵。2、学会对图的存储结构进行基本操作。实验内容1、图的邻接矩阵定义及实现:建立头文件AdjMatrix.h,在该文件中定义图的邻接矩阵存储结构,并编写图的初始化、建立图、输出图、输出图的每个顶点的度等基本操作实现函数。同时建立一个验证操作实现的主函数文件test5_1.cpp,编译并调试程序,直到正确运行。2、选做:编写图的深度优先遍历函数与广度优先遍历函数,要求把这两个函数添加到头文件AdjMatrix.h中,并在主函数文件test
关键词:

浙江大学城市学院实验报告 课程名称 数据结构基础 实验项目名称 实验十二 图的基本操作—邻接矩阵存储结构 学生姓名 专业班级 学号 实验成绩 指导老师(签名 ) 日期 一. 实验目的和要求 1、掌握图的存储结构:邻接矩阵。 2、学会对图的存储结构进行基本操作。 二. 实验内容 1、图的邻接矩阵定义及实现:建立头文件AdjMatrix.h,在该文件中定义图的邻接矩阵存储结构,并编写图的初始化、建立图、输出图、输出图的每个顶点的度等基本操作实现函数。同时建立一个验证操作实现的主函数文件test5_1.cpp,编译并调试程序,直到正确运行。 2、选做:编写图的深度优先遍历函数与广度优先遍历函数,要求把这两个函数添加到头文件AdjMatrix.h中,并在主函数文件test5_1.cpp中添加相应语句进行测试。 3、填写实验报告,实验报告文件取名为report12.doc。 4、上传实验报告文件report12.doc及源程序文件test5_1.cpp、AdjMatrix.h到Ftp服务器上自己的文件夹下。 三. 函数的功能说明及算法思路 (包括每个函数的功能说明,及一些重要函数的算法实现思路) 四. 实验结果与分析 五. 心得体会 【附录----源程序】 //p-255 图的存储结构以 数组邻接矩阵 表示, 构造图的算法。 /* 注意输入格式,按以下方式输入 构造有向网 输入要构造的网的顶点数和弧数: 4,5 依次输入网的顶点名称ABCD...等等: abcd 按照: 尾顶点名->头顶点名,权值 输入数据:如A->B,23 a->b,5 a->c,8 c->b,7 a->d,4 d->c,3 输出邻接矩阵 ∞ | 5 | 8 | 4 | ∞ | ∞ | ∞ | ∞ | ∞ | 7 | ∞ | ∞ | ∞ | ∞ | 3 | ∞ | Press any key to continue */ #include #include #include #include typedef char VertexType; //顶点的名称为字符 const int MaxVertexNum=10; //图的最大顶点数 const int MaxEdgeNum=100; //边数的最大值 typedef int WeightType; //权值的类型 const WeightType MaxValue=32767; //权值的无穷大表示 typedef VertexType Vexlist[MaxVertexNum]; //顶点信息,定点名称 typedef WeightType AdjMatrix[MaxVertexNum][MaxVertexNum]; //邻接矩阵 typedef enum{DG,DN,AG,AN} GraphKind; //有向图,有向网,无向图,无向网 typedef struct{ Vexlist vexs; // 顶点数据元素 AdjMatrix arcs; // 二维数组作邻接矩阵 int vexnum, arcnum; // 图的当前顶点数和弧数 GraphKind kind; // 图的种类标志 } MGraph; void CreateGraph(MGraph &G, GraphKind kd)// 采用数组邻接矩阵表示法,构造图G {//构造有向网G int i,j,k,q; char v, w; G.kind=kd; //图的种类 printf("输入要构造的图的顶点数和弧数:\n"); scanf("%d,%d",&G.vexnum,&G.arcnum); getchar();//过滤回车 printf("依次输入图的顶点名称ABCD...等等:\n"); for (i=0; i头顶点名,权值 输入数据:如A->B,23 \n"); else printf("按照: 尾顶点名->头顶点名输入数据:A->B\n"); for (k=0; k%c,%d",&v,&w,&q); //输入弧的两个定点及权重 else scanf("%c->%c",&v,&w); getchar(); for(i=0;i

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 3 金币 [ 分享文档获得金币 ] 1 人已下载

下载文档