网站大量收购独家精品文档,联系QQ:2885784924

《数据结构课程设计报告-最短路径算法-二叉树的三种遍历》.docx

《数据结构课程设计报告-最短路径算法-二叉树的三种遍历》.docx

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计报告班 级: 计算机科学与技术132班 姓 名: 赖恒财   指导教师: 董跃华   成 绩:       32 信息工程学院 2015 年 7月 8日目录图的最短路径算法实现1.需求分析11.1 程序设计内容11.2 设计要求12.概要设计23.详细设计23.1 数据类型的定义23.2 功能模块的设计23.3 主程序流程94.调试分析104.1 问题回顾和分析104.2.经验和体会115.测试结果12二叉树的遍历1.设计目的132.需求分析142.1课程设计的内容和要求142.2选题的意义及背景143.概要设计143.1设计思想143.2程序数据类型163.3程序模块分析163.3.1置空栈163.3.2入栈173.3.3出栈173.3.4取栈顶操作173.3.5判空栈173.4函数关系:184.详细设计184.1二叉树算法程序截图和结果185.程序测试结果及问题分析196.总结20参考文献21附录122附录226图的最短路径算法实现 ----基于floyd最短路径算法需求分析设计校园平面图,所含景点不少于8个。以图中顶点表示学校内各景点,存放景点的名称、景点介绍信息等;以边表示路径,存放路径长度信息。要求将这些信息保存在文件graph.txt中,系统执行时所处理的数据要对此文件分别进行读写操作。1.1 程序设计内容1.从文件graph.txt中读取相应数据, 创建一个图,使用邻接矩阵表示图 ;2.景点信息查询:为来访客人提供校园任意景点相关信息的介绍;3.问路查询:为来访客人提供校园任意两个景点之间的一条最短路径 。1.2 设计要求(1) 程序要具在一定的健壮性,即当输入数据非法时,程序也能适当地做出反应。(2) 程序要添加适当的注释,程序的书写要采用缩进格式。(3) 根据实验报告模板详细书写实验报告,在实验报告中给出校园平面图。(4) 校园平面图中的校园景点信息保存在文件graph.txt中。2.概要设计此程序主要实现以下几个模块, 基于下面几个模块完全可以实现此题要求.(1). 图的创建(2). 输出提供可选查询景点(3). 景点介绍查询处理(4). 查找两景点间的最短路径(5). Floyd算法(核心)3.详细设计3.1 数据类型的定义typedef struct{ char name[100];//名字char info[10000];//介绍}VertexType; //顶点结构typedef struct{ VertexType vexs[10];int arcs[100][100]; //邻接矩阵int vexnum,arcnum;//顶点个数,边的个数 }MGraph;//图结构校园道路是双向通行的,可设校园平面图是一个带权的无向图,用邻接矩阵表示此无向网。邻接矩阵的数据类型定义如下:3.2 功能模块的设计3.2.1 图的创建void initGraph() {freopen(graph.txt, r, stdin);//打开文件scanf(%d %d, mg.vexnum, mg.arcnum);//读取顶点数、边数//循环输入景点、景点介绍for (int i = 0; i mg.vexnum; i++) {scanf(%s %s, mg.vexs[i].name, mg.vexs[i].info);}//初始化矩阵,任意两点之间没有路for (int i = 0; i 100; i++) {for (int j = 0; j 100; j++) {mg.arcs[i][j] = 999999;//999999相当于无穷大}}//输入距离for (int i = 0; i mg.arcnum; i++) {char from[100];//开始结点名char to[100];//结束结点名//f表示开始结点编号,t表示目的结点编号,dis表示两点间的距离int f, t, dis;scanf(%s %s %d, from, to, dis);//把景点名字换成编号for (int j = 0; j mg.vexnum; j++) {if (strcmp(mg.vexs[j].name, from) == 0) f = j;if (strcmp(mg.vexs[j].name, to) == 0) t = j;}//创建邻接矩阵mg.arcs[f][t] = dis;mg.arcs[t][f] = dis;}floyd();//floyd算法计算各两点之间的最短路径,后文定义freopen(CON, r, stdin);//改变输入流}校园平面图可以表示成为一个无向网,用一个MGraph 类型的变量 mg表示这张无向网。网中包含了景点的名字和信息,以及表

您可能关注的文档

文档评论(0)

lipinting + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档