无向图最短路径算法c语言,求无向图的最短路径C/C++/C#算法?

a70475eb02e36be0f05c5a084a88b2ba.png

守候你守候我

using System;using System.Collections.Generic;using System.Text;namespace PathEst{public static class qu{public static string shortest(int[][] g, int a, int v)//g,矩阵图。a,2起点。v,5终点。返回值,最后路径{int t = v;int[] P = new int[6];//用来存储得到的最短路径int[] D = new int[6];//用于存储由a到其它路径的长度const int INFINITY = 65535;int[] final = new int[6];//保存结点是否已访问过for (int i = 0; i < 6; ++i)//初始化{D[i] = g[a][i];//路径长度P[i] = a;//由此可“叶落归根”final[i] = 0;}final[a] = 1;//不访问起点for (int i = 1; i < 6; ++i){int min = INFINITY;//当前的最短路径for (int w = 0; w < 6; ++w)//取最距离a最近的点v{if ((final[w] == 0) && (D[w] < min))//如果存在更短的路径,替换{v = w;min = D[w];}}final[v] = 1;for (int w = 0; w < 6; ++w)//如果v是最短路径上的点,加到P[]中{if ((final[w] == 0) && (min + g[v][w] < D[w])){D[w] = min + g[v][w];P[w] = v;//从a到w最近路径,是v}}}//现在,P中已存在最短路径。。。D[t],是路径长度string r = t.ToString();do{r += P[t].ToString();t = P[t];} while (t != a);//读出反向路径//倒置字符串char[] chararray = r.ToCharArray();Array.Reverse(chararray);return new string(chararray);}}}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值