- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验六图的创建及应用(I).
姓名 学号
实验项目 图的创建及应用(I) 实验内容 1.编写算法,由依次输入的顶点数目、弧的数目、各顶点的信息和各条弧的信息建立有向图的邻接矩阵和邻接表存储结构并输出显示。(题集150页5.3扩充)
存储结构定义分别参见教材第161页和第163页。
2.试基于图的深度优先搜索策略写一算法,判别以邻接表方式存储的有向图中是否存在由顶点vi到顶点vj的路径(i≠j)。注意:算法中涉及的图的基本操作必须在此存储结构上实现。(题集第49页7.27) 算法设计与程序实现: 算法分析 本次实验主函数采用循环选择结构,主函数调用自己编写的头文件DataStructure_Graph.h中的相关功能函数,完成实验要求。
主程序结构:
1、邻接矩阵表示法:
1、创建有向图; //调用CreateGraph(MG)创建有向图
2、显示图信息; //调用DisplayGraph(MG) 显示图信息
3、返回上一界面;
2、邻接表表示法:
1、创建有向图; //调用CreateGraph(ALG)创建有向图
2、显示图信息;//调用DisplayGraph(ALG) 显示图信息
3、返回上一界面;
3、基于深度优先搜索判断是否存在指定位置的路径:
1、使用已创建的邻接表表示的图进行搜索判断;//调用exist_path_DFS(ALG, i, j)搜索
2、创建新的图进行搜索判断;//创建新的有向图,并调用exist_path_DFS(R_ALG, i, j)搜索
3、返回上一界面;
4、退出程序
创建图的算法分析
邻接矩阵结构创建图:
首先由键盘输入待创建的图的顶点数,弧数以及是否含有弧信息,然后由顶点数控制循环构造顶点向量,接着由顶点数控制循环初始化邻接矩阵(adj=0,info=NUll),再次输入弧信息,此时将输入的弧的弧头和弧尾与顶点信息进行匹配,从而确定弧在邻接矩阵中的位置(有弧时为1),如果输入的弧有信息的话,在进行有无弧的判断写邻接矩阵时进行绑定,有键盘输入即可。
邻接表结构创建图:
首先由键盘输入待创建的图的顶点数,弧数,然后由顶点数控制循环初始化顶点信息(顶点数据信息及顶点第一条弧指针(firstarc = NULL)),接着由弧数控制循环输入弧头和弧尾顶点,与之前建立的顶点信息进行匹配,从而确定弧头和弧尾的位置信息,此时生成一个弧结点类型的存储空间,采用单链表中在表头插入新结点的方法,将弧的信息插入到顶点的第一条弧之后,如同此法,对每个顶点都进行以上操作,这就建立了图的邻接表结构。
深度优先搜索判断是否存在指定位置的路径算法分析
首先判断指定的两个位置向量是否相等,如果相等,则肯定有路径相连,否则从指定的弧头结点开始搜索,将该顶点访问过的弧的访问标志置1,任何到该弧的弧头顶点进行如上操作,当搜索该顶点的所有弧都没有找到则返回0,然后返回上一顶点,对该顶点的其他弧进行访问。当指定顶点的所有弧都被搜索访问过都没有找到,此时程序返回0。 核心程序 此程序中用到的自己编写的头文件以在下面给出,而头文件的说明则在主函数中文件包含部分的注释处,核心程序如下:
1.主函数如下:
#include iostream //输入输出流库头文件
#include fstream //文件操作流库头文件
#include windows.h //cmd窗口设置函数头文件
#include ADT.h //数据结构中相关结构体类型定义及相关数据类型定义
#include DataStructure_Graph.h //数据结构第七章图相关函数的定义及声明
using namespace std;
void main_menu(void);
void minor_menu1(void);
void minor_menu2(void);
void minor_menu3(void);
int main(void)
{
system(title 数据结构实验 实验六:图的创建及应用(I)); //设置cmd窗口标题
system(color F1); //设置控制台窗口的背景色和前景色
system(date /T); //输出当前的日
您可能关注的文档
最近下载
- (完整版)交管12123学法减分考试题库及答案.docx
- 群建阀门公司安全生产事故应急预案.doc VIP
- GA_T 1343-2016防暴升降式阻车路障.pdf
- 教育数字化转型背景下高校数字素养教育实践模式创新路径.docx VIP
- 200个句子涵盖了高中英语4500词汇[宝典].doc
- 体育馆会堂网架提升专项施工方案.doc
- 小学英语“教—学—评”一体化的优势及运用对策.pptx VIP
- 2020年2月四川省喜德县医院系统(卫生类)招聘考试《医学基础知识》试卷及答案.pdf
- 3D打印技能竞赛备考试题库500题(含答案).docx
- 耳鼻喉科品管圈PPT-降低鼻内镜术后中重度疼痛发生率.pptx VIP
文档评论(0)