校园导航问题.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
校园导航问题

安徽建筑大学 课 程 设 计 报 告 课程名称: 数据结构与算法课程设计 题 目: 校园导航问题 院 系: 数理系 专 业: 信息与计算科学 班 级: 02班 (专升本) 学 号: 12207210220 姓 名: 穆海山 课程设计的目的 数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。 学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。通过此次课程设计主要达到以下目的: 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; 提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。 需求分析 设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。i,j] 表示赋权图中从结点vi出发仅通过v0,v1,┉,vk-1中的某些结点到达vj的最短路径的长度, 若从vi到vj没有仅通过v0,v1,┉,vk-1 的路径,则D[i,j]=( 即 D-1[i,j] 表示赋权图中从结点vi到vj的边的长度,若没有从结点vi到vj的边,则D[i,j]=( D0[i,j] 表示赋权图中从结点vi到vj的”最短”路径的长度, 这条路上除了可能有v0外没有其它结点 D1[i,j] 表示赋权图中从结点vi到vj的”最短”路径的长度, 这条路上除了可能有v0,v1外没有其它结点 ┉┉┉ 根据此定义,Dk[i,j]=min{ Dk-1[i,j] , Dk-1[i,k-1]+Dk-1[k-1,j] } 定义:path[i,j]表示从结点vi到vj的“最短”路径上vi的后继结点 求每对顶点之间的最短路径。 依次计算矩阵A(0),A(1),…,A(n)。 A(0)为邻接矩阵, 计算A(k)时, A(k)(i,j)=min{A(k-1)(i,j), (A(k-1)(i,k)+A(k-1)(k,j))}。 技巧:计算A(k)的技巧。第k行、第k列、对角线的元素保持不变,对其余元素,考查A(i,j)与A(i,k)+A(k,j) (第k列i“行”元素加上第k行j“列”元素,简记为“行+列”),如果后者更小则替换A(i,j),同时修改路径。 程序模块 用Floyd算法求有向网G中各对顶点v和w之间的最短路径 #define INFINITY 10000 /*定义一个权值的最大值*/ #define Max 10 /* 假设有向网顶点数最大为10 */ int a[Max][Max],P[Max][Max]; void ShortestPath_Floyd () { /*用Floyd算法求有向网G中各对顶点v和w之间的最短路径P[][]及其带权长度a[][]。若P[i][j]=k,则表示k是从i到j当前求得的最短路径上的顶点*/ for(i=0;iD;i++) //初始化距离和路径矩阵,D为顶点个数 for(j=0;jD;j++) { if(a[i][j]0 a[i][j]INFINIFY) //有直接路径 P[i][j]=i; else

文档评论(0)

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

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

1亿VIP精品文档

相关文档