欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构实验报告图与景区.pdf

    • 资源ID:85772371       资源大小:234.58KB        全文页数:13页
    • 资源格式: PDF        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构实验报告图与景区.pdf

    .学生学号实验课成绩学 生 实 验 报 告 书实验课程名称数据结构与算法综合实验开课学院计算机科学与技术学院指导教师姓名学生姓名学生专业班级2017-2018 学年第2 学期.实验课程名称:数据结构与算法综合实验实验项目名称图与景区信息管理系统实践报告成绩实验者专业班级组别同组者完成日期2018 年 5 月 23 日第一部分:实验分析与设计(可加页)一、实验目的和要求1.目的掌握图的定义和图的存储结构。掌握图的创建方法和图的应用使用 C+语言,定义图的数据结构,结合迭代开发思路实现“景区信息管理系统”。掌握图的两种遍历方法和应用。使用 C+语言和深度优先算法实现“旅游景点导航”功能开发。掌握迪杰斯特拉算法和应用。使用 C+语言和迪杰斯特拉算法实现“搜索最短路径”功能开发。理解最小生成树的概念,掌握普里姆算法和应用。使用 C+语言和最小生成树算法实现“铺设电路规划”功能开发。2.要求开发景区信息管理系统,对景区的信息进行管理。使用图的数据结构来保存景区景点信息,为用户提供创建图、查询景点信息、旅游景点导航、搜索最短路径、铺设电路规划等功能。.二、分析与设计(1)创建工程读取文件信息,创建图,输出周边景点信息读取景区信息文件,采用图的存储结构,创建景区景点图,查询景点信息。(2)迭代开发,进行深度优先搜索,实现旅游景点导航。(3)继续迭代,采用迪杰斯特拉算法、普里姆算法,实现搜索最短路径和电路铺设,开发景区信息管理系统。1.数据结构的设计记录顶点信息的结构体struct Vex int num;/景点编号char name20;/景点名字char desc1024;/景点介绍;记录边的信息的结构体struct Edge int vex1;/边的第一个顶点int vex2;/边的第二个顶点.int weight;/权值;用来保存路径的链表的结构体typedef struct Path int vexs20;/保存一条路径Path*next;*PathList;CGraph 类用来实现相应功能的方法class CGraph private:int m_aAdjMatrix2020;/邻接矩阵Vex m_aVexs20;/顶点信息数组int m_nVexNum;/当前图的顶点个数public:void Init(void);bool InsertVex(Vex sVex);bool InsertEdge(Edge sEdge);Vex GetVex(int nVex);int GetVexnum(void);int FindEdge(int nVex,Edge aEdge);void DFS(int nVex,bool aVisited,int&nIndex,PathList&pList);void DFSTraverse(int nVex,PathList&pList);int FindShortPath(int nVexStart,int nVexEnd,Edge aPath);void FindMinTree(Edge aPath);2.核心算法设计(1)输出周边景点信息Input:操作表号与景点编号Output:输入景点的周边景点信息Process:int CGraph:FindEdge(int nVex,Edge aEdge)int k=0;.for(int i=0;ivexsnIndex+=nVex;/访问顶点/判断是否所有节点都已访问过int nVexNum=0;for(int i=0;inext=(PathList)malloc(sizeof(Path);for(int i=0;inext-vexsi=pList-vexsi;pList=pList-next;pList-next=NULL;else/按顶点的存储顺序,查找当前顶点相连的的顶点.for(int i=0;i0)/以该顶点为起点遍历剩下的顶点DFS(i,aVisited,nIndex,pList);aVisitedi=false;/访问状态置空nIndex-;/回溯 void CGraph:DFSTraverse(int nVex,PathList&pList)int nIndex=0;bool aVisitedMAX_VERTEX_NUM=false;DFS(nVex,aVisited,nIndex,pList);(3)Dijkstra 算法搜索最短路径Input:操作表号与起始景点编号Output:从起始顶点到终点的最短路径Process:int CGraph:FindShortPath(int nVexStart,int nVexEnd,Edge aPath)int nShortPathMAX_VERTEX_NUMMAX_VERTEX_NUM;/保存最短路径int nShortDistanceMAX_VERTEX_NUM;/保存最短距离bool aVisitedMAX_VERTEX_NUM;/判断某顶点是否已经加入到最短路径/初始化int v;for(v=0;vm_nVexNum;v+)aVisitedv=false;if(m_aAdjMatrixnVexStartv!=0)/初始化该顶点到其他顶点的最短距离,默认为两点间的距离nShortDistancev=m_aAdjMatrixnVexStartv;else/如果顶点 i和nVexStart不相连,则最短距离设为最大值nShortDistancev=0 x7FFFFFFF;nShortPathv0=nVexStart;/起始点为 nVexStart.for(int j=1;jm_nVexNum;j+)nShortPathvj=-1;/初始化最短路径 /初始化,nVexStart顶点加入到集合中aVisitednVexStart=true;int min;for(int i=1;im_nVexNum;i+)min=0 x7FFFFFFF;bool bAdd=false;/判断是否还有顶点可以加入到集合中for(int j=0;jm_nVexNum;j+)if(aVisitedj=false)if(nShortDistancejmin)v=j;/j 顶点离 nVexStart顶点最近min=nShortDistancej;/j 到nVexStart的最短距离为 minbAdd=true;/如果没有顶点可以加入到集合,则跳出循环if(bAdd=false)break;aVisitedv=true;/将顶点 j加入到集合nShortPathvi=v;/将顶点 j保存到 nVexStart到j的最短路径里for(int w=0;wm_nVexNum;w+)/将w作为过度顶点计算 nVexStart通过 w到每个顶点的距离if(aVisitedw=false&(min+m_aAdjMatrixvwnShortDistancew)&m_aAdjMatrixvw!=0)/更新当前最短路径及距离nShortDistancew=min+m_aAdjMatrixvw;for(int i=0;im_nVexNum;i+)/如果通过 w到达顶点 i的距离比较短,则将 w的最短路径复制给 inShortPathwi=nShortPathvi;.int nIndex=0;int nVex1=nVexStart;/将最短路径保存为边的结构体数组for(int i=1;im_nVexNum;i+)if(nShortPathnVexEndi!=-1)aPathnIndex.vex1=nVex1;aPathnIndex.vex2=nShortPathnVexEndi;aPathnIndex.weight=m_aAdjMatrixaPathnIndex.vex1aPathnIndex.vex2;nVex1=nShortPathnVexEndi;nIndex+;return nIndex;(4)普里姆算法构建最小生成树Input:输入操作编号Output:得到最小生成树的路径Process:void CGraph:FindMinTree(Edge aPath)bool aVisitedMAX_VERTEX_NUM;/判断某顶点是否在最小生成树顶点集合里for(int i=0;iMAX_VERTEX_NUM;i+)aVisitedi=false;aVisited0=true;/0 顶点加入到集合中int min;int nVex1,nVex2;for(int k=0;km_nVexNum-1;k+)min=0 x7FFFFFFF;for(int i=0;im_nVexNum;i+)if(aVisitedi)/从集合中取一个顶点 for(int j=0;jm_nVexNum;j+).if(!aVisitedj)/从不在集合的顶点中取出一个顶点 if(m_aAdjMatrixijmin)&(m_aAdjMatrixij!=0)nVex1=i;nVex2=j;min=m_aAdjMatrixij;/找出最短的边 /保存最短边的两个顶点aPathk.vex1=nVex1;aPathk.vex2=nVex2;aPathk.weight=m_aAdjMatrixnVex1nVex2;/将两个顶点加入到集合aVisitednVex1=true;aVisitednVex2=true;3.测试用例设计使用实验所要求的图创建两个文本文件,对文件进行读取,观察其相关功能的实现。三、主要仪器设备及耗材1.安装了 Windows 10 或其它版本的 Windows 操作系统的 PC机 1 台2.PC机系统上安装了 Microsoft Visual Studio 2010 开发环境.第二部分:实验过程和结果(可加页)一、实现说明使用 Mircosoft Visual Studio 2010 开发工具,创建一个空的控制台工程。利用图的存储结构来保存景区景点图,使用C+语言开发景区信息管理系统,工程名为GraphCPro。(1)添加 Graph.h 文件,用来定义图的数据结构,实现图的相关操作。(2)添加 Tourism.h 文件,用来实现景区信息管理系统的相关功能。Tourism.h存放与 Tourism.cpp 相关函数的数据类型的定义,函数原型的声明等。(3)添加 Main.cpp 文件,在文件中创建程序入口函数int main(void)。调用Tourism.h 中的相关函数实现相应功能。二、调试说明(调试手段、过程及结果分析)调试的主要内容为编写程序的语法正确性与否,程序逻辑的正确性与否。调试手段主要采用了Mircosoft Visual Studio 2010 集成开发环境中的“开始执行(Ctrl+F5)”运行并测试,和 F11“逐语句调试”、F12“逐过程调试”、F9“切换断点”、.ctrl+B“新建断点”等。三、软件测试(测试效果.界面、综合分析和结论)1测试效果界面.2综合分析和结论由于上一次的哈夫曼树没有写很好所以我回去以后有好好学习了一下数据结.构,本次实验也比第一次有了经验了,通过和视频的学习我本次把实验全都做出来了。但在实现的过程中对算法的理解还不够透彻,有待提高。第三部分:实验小结、收获与体会通过本次试验,我进一步掌握了有关图的相关算法,也对数据结构在实际编程的应用中有了进一步的了解,也对深度优先搜索、迪杰斯特拉、普里姆算法有了进一步的了解。同时,我也发现自己对于图的有关知识掌握的还远远不够,对于一些算法还不能熟练应用于编程中,所以,在以后的学习中,要多编程,以提高自己的动手编程能力。

    注意事项

    本文(数据结构实验报告图与景区.pdf)为本站会员(索****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开