- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验六图及其应用
1、实验目的
熟练掌握图的两种存储结构(邻接矩阵和邻接表)的表示方法
掌握图的基本运算及应用
加深对图的理解,逐步培养解决实际问题的编程能力
2、实验内容:
采用邻接表或邻接矩阵方式存储图,实现图的深度遍历和广度遍历;
用广度优先搜索方法找出从一顶点到另一顶点边数最少的路径。
1.问题描述:利用邻接表存储结构,设计一种图(有向或无向),并能够对其进行如下操作:
创建一个可以随机确定结点数和弧(有向或无向)数的图;
根据图结点的序号,得到该结点的值;
根据图结点的位置的第一个邻接顶点的序号,以及下一个邻接顶点的序号;
实现从第v 个顶点出发对图进行深度优先递归遍历;
实现对图作深度优先遍历;
实现对图进行广度优先非递归遍历;
编写主程序,实现对各不同的算法调用。
2.实现要求:(以邻接表存储形式为例)编写图的基本操作函数::
对图的各项操作一定要编写成为C(C++)语言函数,组合成模块化的形式,每个算法的实现要从时间复杂度和空间复杂度上进行评价。
1)“建立图的邻接表算法”:CreateGraph(ALGraph *G)
操作结果:采用邻接表存储结构,构造没有相关信息的图G
2)“邻接表表示的图的递归深度优先遍历算法”:DFSTraverse(ALGraph G,void(*Visit)(char*))
初始条件:图G 已经存在;
操作结果:返回图的按深度遍历的结果。
3)“邻接表表示的图的广度优先遍历算法”: BFSTraverse(ALGraph G,void(*Visit)(char*))
初始条件:图G 已经存在;
操作结果:返回图的按广度遍历的结果。
4)“邻接表从某个结点开始的广度优先遍历算法”:BFS(ALGraph G, int v)
初始条件:图G 已经存在;
操作结果:返回图从某个结点开始的按广度遍历的结果。
分析: 修改输入数据,预期输出并验证输出的结果,加深对有关算法的理解。
3、实验指导
本实验以图的邻接表存储结构为例,要求完成基本要求,同时对无向图,有向网,无向网也一并实现其相关的操作,课后同学们可以用邻接矩阵式存储结构完成以上操作。
1. 首先将图的链接存储结构定义放在一个头文件:如取名为ALGraphDef.h。
2. 链接表式存储图的基本操作也放在一个文件中ALGraphAlgo.h.
3.将函数的测试和主函数组合成一个文件,如取名为文件ALGraphUse.cpp.
由于要用到队列技术,对于队列的数据结构定义和基本操作函数的描述就可以借助实验二的结果,不必重写。
4、基本实验的参考程序
1.文件pubuse.h 头文件;
2.文件LinkQueueDef.h 是实验3 中的链式队列的存储结构;
3.文件LinkQueueAlgo.cpp 是实验3 中的链式队列的基本操作;
4.文件ALGraphDef.h 定义了图的链接存储结构(以邻接表存储表示)
#define MAX_VERTEX_NUM 20
typedef enum{DG,DN,AG,AN}GraphKind; /* {有向图,有向网,无向图,无向网} */
typedef struct ArcNode
{
int adjvex; /* 该弧所指向的顶点的位置*/
struct ArcNode *nextarc; /* 指向下一条弧的指针*/
InfoType *info; /* 网的权值指针) */
}ArcNode; /* 表结点*/
typedef struct
{
VertexType data; /* 顶点信息*/
ArcNode *firstarc; /* 第一个表结点的地址,指向第一条依附该顶点的弧的指针*/
}VNode,AdjList[MAX_VERTEX_NUM]; /* 头结点*/
typedef struct
{
AdjList vertices;
int vexnum,arcnum; /* 图的当前顶点数和弧数*/
int kind; /* 图的种类标志*/
}ALGraph;
5.文件ALGraphAlgo.h 定义了链接表式存储图的基本操作
/*ALGraphAlgo.cpp 图的邻接表存储(存储结构由ALGraphDef.h 定义)的基本操作*/
int LocateVex(ALGraph G,VertexType u)
{ /* 初始条件: 图G 存在,u 和G 中顶点有相同特征*/
/* 操作结果: 若G 中存在顶点u,则返回该顶点在图中位置;否则返回-1 */
int i;
for(i=0;iG.vexnum;++i)
if(strcmp(u,G.ver
您可能关注的文档
- 实施精细管理 总结.doc
- 实测实量实施方案实实量实施方案.doc
- 实物计算题 含答案.doc
- 实时PCR原理实时CR原理.doc
- 实现人生价值 习题实现人生价值 练习题.doc
- 实现医院人员管理系统.doc
- 实现伟大中国梦实现大中国梦.doc
- 实用口译笔译词汇大全.doc
- 实用工程管理配合细则.doc
- 实用房屋租赁合同书例实例.doc
- 专题02+时事热点(精讲课件)2025年中考地理二轮复习讲练测(安徽专用).pptx
- 专题10+经济建设 2025年中考道德与法治二轮复习讲练测(广东专用).pptx
- 专题02+西游记【名著概览】+-+2025年中考语文必读名著演练.pptx
- 专题七+认识国家(课件)-【省心备考】2025年中考地理一轮复习优质课件.pptx
- 第22课《礼记》二则——《大道之行也》(课件)-2024-2025学年八年级语文下册同步备课精品资源.pptx
- 跨学科实践15:制作“龙骨水车”(课件)-2024-2025学年八年级物理下学期项目化课程案例.pptx
- 第13课_辽宋夏金元时期的对外交流(课件)2024-2025学年七年级历史下册同步教学课件.pptx
- 选择题专项讲解——综合类(课件)2025年初中道德与法治中考选择题练习.pptx
- 第21课《庄子》二则——《北冥有鱼》(课件)-2024-2025学年八年级语文下册同步备课精品资源.pptx
- 7.3+感受澳大利亚(第二课时)-2025学年七年级地理下册同步精品课堂(晋教版2024).pptx
最近下载
- 防洪度汛应急预案.doc
- 电商平台的售后服务提升与用户满意度策略.pptx
- 烟机设备操作工基础知识-第三章液压与气动传动知识鉴定要素.docx VIP
- 餐饮店厨房菜品生产制作规范.docx VIP
- 烟机设备操作工基础知识-第二章机械基础知识鉴定要素.doc VIP
- 健身房会计账务处理.docx VIP
- 地铁企业文化(张景霞) 任务一:认知企业文化的内涵 企业文化概述.ppt
- 农民工工资补充协议(2024版).docx VIP
- 部编版语文五年级下册第六单元教材解读大单元集体备课.pptx VIP
- 标准线路施工 手册基础 空客常用ASM,AWM手册线路符号和图例及INTRODUCTION前言介绍.pptx
文档评论(0)