数据结构-图的应用(new).ppt

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

Floyd算法的基本思想:在一般情况下,若(vi,…,vk)和(vk,…,vj)分别是从vi到vk和从vk到vj的中间顶点的序号不大于k-1的最短路径,则将(vi,…,vk,…,vj)和已经得到的从vi到vj且中间顶点序号不大于k-1的最短路径相比较,其长度较短者便是从vi到vj的中间顶点的序号不大于k的最短路径。这样,在经过n次比较后,最后求得的必是从vi到vj的最短路径。按此方法,可以同时求得各对顶点的最短路径。Floyd算法的基本思想:算法思想定义D(k)(i,j)为:从vi到vj,由序号不大于k的顶点为中间点(或直达)可构成的最短路径。Floyd算法的基本思想:如:D(0)(i,j)D(k)(i,j)Floyd算法的基本思想:算法思想E1:初始化从vi到vj的目前已知较短路径为从vi到vj的直达弧;E2:对每两顶点对(vi,vj)依次计算D(k)(i,j),k=0…n-1,计算规则为:

D(k)(i,j)=min(D(k-1)(i,k)+D(k-1)(k,j),D(k-1)(i,j))E3:计算得到的D(n)(i,j)即为i到j间的最短距离。例如:带权有向图及其邻接矩阵231064283951用到的数据结构(1)将有向图用邻接矩阵表示:

即用权值代替邻接矩阵中原来的1,若无权值的边可用∞来表示

0123001∞41∞092235083∞∞60231064283951用到的数据结构(2)定义一个n阶方阵序列D(-1),D(0),D(1),…,D(k),…,D(n-1)其中D(-1)[i][j]=arcs[i][j]D(k)[i][j]=Min{D(k-1)[i][j],D(k-1)[i][k]+D(k-1)[k][j]}0≤k≤n-1从上述计算公式可见,D(1)[i][j]是从vi到vj的中间顶点的序号不大于1的最短路径长度;D(k)[i][j]是从vi到vj的中间顶点的序号不大于k的最短路径的长度;D(n-1)[i][j]就是从vi到vj的最短路径的长度。用到的数据结构(3)设一个二维数组Path记录两点间最短路径所经过的中间节点,Path[v][w]是相应路径上w前一顶点的顶点号。示例:求解过程及结果:D(-1)D(0)D(1)D(2)D(3)01230123012301230123012301∞4∞0923508∞∞6001∞4∞0923407∞∞6001103∞0923406∞∞600110312092340691060019311082340691060Path(-1)Pat

文档评论(0)

优美的文学 + 关注
实名认证
内容提供者

优美的文学优美的文学优美的文学优美的文学优美的文学

1亿VIP精品文档

相关文档