资源描述:
《数据结构实验报告图的存储》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划数据结构实验报告图的存储 一、实验目的和要求 掌握图的相关概念,包括图,有向图,无向图,完全图,子图,连通图,度,入度,出度,简单回路和环等定义。 重点掌握图的各种存储结构,包括邻接矩阵和邻接表等。 重点掌握图的基本运算,包括创建图,输出图,深度优先遍历,广度优先遍历等。 掌握图的其他运算,包括最小生成树,最短路径,拓扑排序和关键路径等算法。 灵活运用图这种数据结构解决一些综合应用
2、问题。 二、实验内容和方法 (1)实验内容: 1、编写一个程序,实现不带权图和带权图的邻接矩阵与邻接表的相互转换算法、输出邻接矩阵与邻接表的算法,并在此基础上设计一个程序实现如下功能: ①建立如图1所示的有向图G的邻接矩阵,并输出; ②由有向图G的邻接矩阵产生邻接表,并输出; ③再由②的邻接表产生对应的邻接矩阵,并输出。 图1 2、编写一个程序,实现图的遍历运算,并在此基础上设计一个程序完成如下功能:目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的
3、专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 ①输出图1所示的有向图G从顶点0开始的深度优先遍历序列;②输出图1所示的有向图G从顶点0开始的深度优先遍历序列;③输出图1所示的有向图G从顶点0开始的广度优先遍历序列。 3、设计一个程序,采用邻接表存储图,并输出图中从指定顶点1出发的所有深度优先遍历序列。 (2)实验方法: 1、综合运用课本所学的知识,用不同的算法实现在不同的程序功能。 2、结
4、合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。 3、根据实验内容,编译程序。 三、实验环境: Windows7,VisualC++ 三、实验过程描述 文件中定义了图的邻接矩阵表示类型和邻接表表示类型,该头文件在以下三个实验中都会使用到。其代码如下: #ifndefGRAPH_H_INCLUDED #defineGRAPH_H_INCLUDED typedefintInfoType; #defineMAXV100//最大顶点个数 #defineINF3
5、2767//INF表示无限大目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 //以下定义邻接矩阵类型 typedefstruct { intno; InfoTypeinfo; }VertexType; typedefstruct { intedges[MAXV][MAXV]; intn,e;
6、VertexTypevexs[MAXV]; }MGraph; //以下定义邻接表类型 typedefstructANode { intadjvex; structANode*nextarc; InfoTypeinfo; }ArcNode; typedefintVertex; typedefstructVNode {目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项
7、目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 Vertexdata; 实验① 源程序。 一、输入如下所示程序; //文件名: #include #include #include"" externvoidMatToList1(MGraph,ALGraph*&);externvoidListToMat1(ALGraph*,MGraph&);externvoidDispMat1(MGraph); externvoidDispAdj1(ALGraph*); int
8、main() { inti,j; MGraphg,g1; ALGraph*G; intA[MAXV][6]={{0,5,INF,7,INF,INF},{INF,0,4,INF,INF,INF},{8,INF,0,INF,INF,9},{INF,INF,5,0,INF,6},{INF,INF,INF,5,0,INF},{3,INF,INF,INF,1,0}};=6;目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的