- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计用C#语言解决最短路径问题
《数据结构》单元设计报告
单元设计任务书
软件学院 软件开发与项目管理专业
课程名称 数据结构单元设计 时间 2011学年第下学期13周 学生姓名 指导老师 XXX 题 目 用C#语言解决最短路径问题 主要内容:
最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径 要求:
(1)通过实际的分析、设计、、试,掌握。
(2)按要求编写课程设计报告书,能正确设计。1)单元设计设计附件()一个弗洛伊德一个最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 算法具体的形式包括:
确定起点的最短路径问题 - 即已知起始结点,求最短路径的问题。
确定终点的最短路径问题 - 与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。
确定起点终点的最短路径问题 - 即已知起点和终点,求两结点之间的最短路径。
全局最短路径问题 - 求图中所有的最短路径。
功能名称 产生最短路线及最短距离 功能描述 输入起始位置v0,得到该点到所有点的最短路线,及距离 输入数据 数字v0 v0{v0`vn} 事件流 1.运行程序,提示输入一个数字n;
2.提交数字后,按输出数据的要求显示输出结果。 输出数据 1.以多行形式输出路线及距离。
思路提示 求解的很多,这里采用:
按路径长度递增次序产生最短路径算法:
把V分成两组:
(1)S:已求出最短路径的顶点的集合
(2)V-S=T:尚未确定最短路径的顶点集合
将T中顶点按最短路径递增的次序加入到S中,
保证:(1)从源点V0到S中各顶点的最短路径长度都不大于
从V0到T中任何顶点的最短路径长度
(2)每个顶点对应一个距离值
S中顶点:从V0到此顶点的最短路径长度
T中顶点:从V0到此顶点的只包括S中顶点作中间
顶点的最短路径长度
依据:可以证明V0到T中顶点Vk的最短路径,或是从V0到Vk的
直接路径的权值;或是从V0经S中顶点到Vk的路径权值之和
3 概要设计
3.1 数据结构与数据存储表示
这方面使用二维数组n[MAX][MAX]来静态存储不超过MAX行MAX列的距离方阵。
3.2 程序结构
主要使用与实现如下类:
(1)界面类MagicSquareCon,用于调用业务类,实现最短路线,及距离的输出。
(2业务类Dijkstra,用于实现需求分析的功能,主要包括以下方法或属性:
int[] PathArc: 路径下标的数组ShortPathTable 存储到各点最短路径的权值和ShortPath(int init) 计算init 点到各顶点的最最短路径
3.3 函数逻辑功能调用图
图3.1 逻辑功能调用图
4 详细设计
int[] PathArc路径下标的数组V8的最短路径为v8-v7-v6-v3-v4-v2-v1-v0,即v0-v1-v2-v4-v3-v6-v7-
-v8。
(2)int[] ShortPathTable 存储到各点最短路径的权值和ShortPath(int init) 计算init 点到各顶点最短路径的方法,构造函数调用。
3.4 程序执行流程图
5 运行环境与结果
5.1程序运行环境:
VS2008 VS2005开发平台。
5.2 程序运行结果
(1)运行程序,根据提示输入指令,当v0=0时,程序运行结果如图4.2.1所示
5 结束语
本次单元设计我选择了一个最短路径的算法实现。通过不懈的努力终于掌握这两个经典的算法 迪杰斯特拉(Dijkstra)、弗洛伊德在编程实现的过程中,我进一步掌握和熟悉了而为数组的应用,并熟悉了将问题分解在组装的解决方法和函数的调用。
通过这次课程设计,使我们学到了一些以前没有学过的知识,使我们对程序设计有了更深层次的认识和理解,懂得了灵活运用。
最后,由衷的向我的指导老师表示衷心的感谢,是她的指导和要求,才使我的课程设计有了较为完善的一面,才有了我能力的提高,并使我得到了充分的锻炼,同时也感谢我的同学,是他们帮助我解决了一些问题。
参考文献
[1]黎明志. 数据结构—用C语言描述. 北京:中国水利水电出版社,2006,1
附录 源程序代码
// 程序名称:SortPath
// 程序功能:最短路线
// 程序作者:HYH
// 最后修改日期:2011-12-2
二维数组构造图:
using System;
using System.Collections.Generic;
using Sys
您可能关注的文档
最近下载
- 呼吸内科护士测试卷附答案.doc
- 2008--2013年长安大学考研复试液压传动与控制试卷.pdf
- 处方调配培训课件.ppt VIP
- 2023年QE项目质量工程师年度总结及下年规划.pptx VIP
- 2025年中央经济工作会议解读 PPT课件.pptx VIP
- 海南省海口市2022-2023学年九年级上学期期末物理试题(含答案).docx VIP
- 概率论与数理统计在天气预报方面的应用.docx
- 认识武汉·大国工业-武汉理工大学-中国大学MOOC慕课答案.pdf
- 大学生职业规划大赛《服装与服饰设计专业》生涯发展展示PPT.pptx
- 海南省海口市部分学校联考2022-2023学年九年级上学期期末英语试卷(含答案).docx VIP
文档评论(0)