- 30
- 0
- 约7.14万字
- 约 10页
- 2016-12-05 发布于河南
- 举报
实验六 图及应用
数据结构实验六图及其应用
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.vert
您可能关注的文档
- 分子生物学的研方法-DNA-蛋白质相互作用.ppt
- 分数除法应用题件.ppt
- 分院考卷答案().doc
- 分子生物学课件hapter1.ppt
- 创新方案 必修 第1章 走进细胞.ppt
- 创新管理原则培资料.ppt
- 初中物理所有公.doc
- 初中信息技术课_用Word处理文字.ppt
- 初中语文“四读.doc
- 初识文字处理软.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 部编版六年级语文下册全册一课一练同步练习题配知识点归纳(含答案).pdf VIP
- 预制空心内夯载体桩技术.pdf VIP
- 2025版《全基础题型》高考数学-基础题(721例题型).docx VIP
- (正式版)DB21∕T 4190-2025 《既有住宅适老化改造建筑设计规程》.pdf VIP
- T_NBSC 001-2026(可口革囊星虫养殖技术规范).pdf
- 餐饮业食品安全管理八项制度.pptx VIP
- 法医学中的法医现场勘查学 .pdf VIP
- 中风的中医诊疗方案.pdf VIP
- 2025年自来水供应专属承包合同样本版.docx VIP
- (2025春新教材)人教版PEP版三年级英语下册全册教案件 .pdf
原创力文档

文档评论(0)