



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、欢迎阅读学生实验报告学 院:软件与通信工程学院课程名称:离散数学(软件)专业班级:12软件1班姓名:段谟毅学号:0123747学生实验报告(1)学生姓名段谟毅学号0123747同组人实验项目图的矩阵表示和基本运算日必修 选修演示性实验验证性实验站操作性实验 综合性实验实验地点W101实验仪器台号指导教师赵晓平实验日期及节次、实验综述1、实验目的及要求(1) 熟悉图在计算机中的矩阵表示;(2) 编写程序,根据输入的整数对,输出一个图形的邻接矩阵,并求出各结点的出度和入 度;(3) 加强对图知识的理解、应用和运用能力。 实验要求:给出如下有向图D,利用邻接矩阵,编写程序计算:(1)各结点的度数;(
2、2) D中V2到V4 长度为3的通路的条数;(3) D中V3到v长度为3的回路的条数。认真完成实验题,能正确运行,提交实验报告并上传程序,实验报告要求写出操作步骤、 结果、问题、解决方法、体会等。2、实验仪器、设备或软件计算机、VC+6.0 office、相关的操作系统等。二、实验过程(实验步骤、记录、数据、分析)实验原理:设D= <V,E>是一个线图,V =w,V2,,Vn, E =,©,,斜,则n阶方阵A = (aj )n n称为D的邻接矩阵。其中:邻接矩阵具有如下特点:(1) 邻接矩阵是一个布尔矩阵;(2) 无向线图的邻接矩阵是对称的;(3) 而有向线图的邻接矩阵不
3、一定对称;禾I用邻接矩阵可以很容易的完成结点的度数计算写明具体实施的步骤,包括实验过程中的记录、数据和相应的分析1. 先定义两个结构体,一个用来存储邻接矩阵,一个用来存储结点相关信息。#include <iostream>#defi neMAX_LENGTH 100using namespacestd;typedef structint Matrix MAX_LENGTH MAX_LENGTH ; AdjoinMatrix ;typedef structint in _degree;int out_degree; KnotInfo ;2. 根据题意建立邻接矩阵。void Creat
4、_Matrix(AdjoinMatrix &array, Knotinfo point, int n)int i, j;cout << "分别输入该图的各条边(先输入起点后输入终点 中间用空格隔开输入'0'为结束输入):"<< endl;while (true)cin >> i;if (i)cin >> j;array.Matrixi - 1j - 1 = 1;' :elsebreak;for (i = 0; i < n ;i+)for (j = 0; j < n; j+)if (a
5、rray.Matrixij != 1)array.Matrixij = 0;elsepoin ti.out_degree+;poin tj.i n_degree+;3. 打印出各个节点的出度和入度void in_degree_Matrix(Knotlnfo point, int n)for (int i = 0; i < n; i+)二cout << "结点v"vvi+1vv"出度为:"<< pointi.out_degree << " 入度为:"<< poin ti.i n_de
6、gree << en dl; cout << en dl;4. 创建一个函数,用来实现某两个结点距离为3的通路条数计算int Route_Matrix(Adjoi nMatrix &array, int beg in, int en d,i nt n)int h = 0for (int i = 0; i < n; i+)if (array.Matrix begini)for (int k = 0; k < n; k+)if (array.Matrixik&& array.Matrixk end)h+=1;return h;5. 最后打
7、印矩阵和主函数void Show_Matrix(AdjoinMatrix array,int n)for (int i = 0; i < n; i+)for (int j = 0; j < n; j+)cout << array.Matrixij << ""cout << en dl;/打印矩阵;void mai n()int n;cout << "输入图中所含顶点的个数:"<< endl;cin >> n;KnotInfo pointMAX_LENGTH ;Adjoin
8、Matrix array;Creat_I nfo(poi nt,n);Creat_Matrix(array,po int,n);cout << "根据题意得出关系矩阵如图:"<< endl;Show_Matrix(array ,n);cout << "从结点v2到结点v4长度为3的通路的条数为:"<< Route_Matrix(array, 1,3,n) <<endl; cout << "从结点v3到结点v3长度为3的回路的条数为:"<< Route_Matrix(array, 2, 2,n) << en dl; r; #、<./ V三、结论1、实验结果根据实验过程中所见到的现象
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论