- 1、本文档共93页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大学教程(零起点)数据结构-1图
7.5 最短路径 图的最常用的应用之一是在交通运输和通信网络中寻求最短路径。 在一个带权图中,若从一个顶点到另一个顶点存在着一条路径,则称该路径上所经过边的权值之和为该路径上的带权路径长度。 带权图中从一个顶点到另一个顶点可能存在着多条路径,我们把带权路径长度值最小的那条路径也叫做最短路径,其带权路径长度也叫做最短路径长度或最短距离。 带权图分无向带权图和有向带权图 如从A城到B城有一条公路,A城的海拔高于B城,若考虑到上坡和下坡的车速不同,则边A,B 和边 B,A 上表示行驶时间的权值也不同,即A,B 和B,A应该是两条不同的边, 路径开始顶点为源点 路径的最后一个顶点为终点 某源点到其余顶点之间的最短路径 Dijkastra算法思想: 顶点分成两组 第一组包括已确定最短路径的顶点,初始只含源点 第二组包括尚未确定最短路径的顶点, 按某种方式逐个把第二组的顶点加到第一组,直至从源点可到达的所有顶点都包括在第一组中。此过程中,保持从源点到第一组各顶点的路程长度,不大于从源点到第二组的任何顶点的路径长度。 Dijkastra算法步骤: 初始状态: 第一组只包括顶点源点v, 第二组包括其他所有顶点,并每个点对应一个距离 源点到vj对应的距离是:边v,vj权值, v对应的距离值为 0 若无边则距离是 无穷大 反复从第二组中选距离最小的vk加到第一组中,每加入一个顶点vk,修改源点v到各个顶点的距离,修改后再次选择距离最小点加入第一组 有向图G的n个顶点为V0到Vn-1, 用邻接矩阵表示 顶点分为两组 S[i] 标记已经找到最短路径S[i]=1或S[i]=0 d[i] 记录源点到顶点Vi的最短路径长度 p[i] 源点到Vi的最短路径上Vi点的前驱顶点 若从源点到Vi顶点无路径,则取-1 假设Gn为某有向图, v0为源点! 初始化 for (i=0; in; i++) { s[ i ] = 0; dist[ i ] = Gn.arcs[ 0 ][ i ]; if ( dist[ i ] max ) pre[ i ] = 0; else pre[ i ] = -1; } pre[ 0 ] = -1; S[ 0 ] = 1; for (i=1; in-1; i++) { min=max; for ( j=0; jn; j++ ) if (S[j]==0 ( dist[j]min) ) { min=dist[j]; k=j; } S[k]=1; for (j=0; jn; j++) if (S[j]==0 (dist[j]min+Gn.arcs[k][j])) { dist[j]= dist[k]+ Gn.arcs[k][j]); pre[j]=k; } } for (i=0; in; j++) { if ( dist[i] max i !=0 ) { printf(“v%d --”,i); next=p[i]; while(next!=v0) { printf(v%d --,next}; next=p[next]; } Printf(“v%d;%d\n”,v0,d[i]); } } 假设Gn为某有向图, v0为源点! 初始化 for (i=0; in; i++) { s[ i ] = 0; dist[ i ] = Gn.arcs[ 0 ][ i ]; if ( dist[ i ] max ) pre[ i ] = 0; else pre[ i ] = -1; } pre[ 0 ] = -1; S[ 0 ] = 1; for (i=1; in-1; i++) { min=max; for ( j=0; jn; j++ ) if (S[j]==0 ( dist[j]min) ) { min=dist[j]; k=j; } S[k]=1; for (j
您可能关注的文档
- 大学、做人、治学之禅.ppt
- 大学一年级高数第1讲.ppt
- 大元朝的分省地图.ppt
- 大型铸钢件的重皮缺陷机理.pptx
- 大同城市人家小区样板间案例.ppt
- 大学体验英语4课文译文.doc
- 大型车焊装部制作品质月度报告2013.01.ppt
- 大学必读书目阅读指南.doc
- 大型相亲活动方案.ppt
- 大学心理学 专题二 认知心理(想象与思维).ppt
- 2024年江西省寻乌县九上数学开学复习检测模拟试题【含答案】.doc
- 2024年江西省省宜春市袁州区数学九上开学学业水平测试模拟试题【含答案】.doc
- 《GB/T 44275.2-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第2部分:术语》.pdf
- 中国国家标准 GB/T 44275.2-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第2部分:术语.pdf
- GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构.pdf
- 《GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构》.pdf
- 中国国家标准 GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构.pdf
- GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南.pdf
- 中国国家标准 GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南.pdf
- 《GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南》.pdf
文档评论(0)