最短路径 Floyd算法

// path数组存p到q的最短路径最后是经过哪一点
// path数组初始值为0

// dist数组存两两之间的距离,这个代码是按照如果p->q没有直接的路径,那么他
// 们之间的值为0,需要用 其他的点进行更新
// vertex 顶点数
// line数组存着从p到q所要经过的点,用递归写,首先起点是p,然后判断path[p][q]是否大于0

// 大于0代表p->q之间还经过了其他点,

// 那么要继续判断p到path[p][q]之间还有没有经过其他点,如果
// 没有那么// 等于0,就是p->path[p][q],接着继续判断path[p][q]到q之间有没有经过其他点,有的话继续递归,

// 否则p->q的路径就是p->path[p][q]->q
//
// 给出测试数据
7
0 20 50 30 0 0 0
20 0 25 0 0 70 0
50 25 0 40 25 50 0
30 0 40 0 55 0 0
0 0 25 55 0 10 70
0 70 50 0 10 0 50
0 0 0 0 70 50 0

//下面的这句system("pause"); 分开每次输出p->q的距离,

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值