求无向图的最短路径C/C++/C#算法

来源:百度知道 编辑:UC知道 时间:2024/06/05 23:57:25
有注释的,不然看不懂。嘿嘿
要求:已知两点,输出路径,邻接矩阵存储
还有,只要两点间路径,不要一点到其它所有点的路径。我太菜了,那个看不懂

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