资源简介
程序采用迪杰特拉斯(Dijkstra)算法求解带权值的有向图中从某个起始节点到其它节点的最短路径。
开发环境:vs2013,.NET4.0

代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 最短路径Dijkstra
{
class DijkstraSolution
{
/*
* 求解各节点最短路径,获取path,和cost数组,
* path[i]表示vi节点的前继节点索引,一直追溯到起点。
* cost[i]表示vi节点的花费
*/
public static void FindShortestPath(int[] graphint startIndex int[] path int[] costint max)
{
int nodeCount = graph.GetLength(0);
bool[] v = new bool[nodeCount];
//初始化 path,cost,V
for (int i = 0; i {
if (i == startIndex)//如果是出发点
{
v[i] = true;//
}
else
{
cost[i] = graph[startIndexi ];
if (cost[i] < max) path[i] = startIndex;
else path[i] = -1;
v[i] = false;
}
}
//
for(int i=1;i {
int minCost = max ;
int curNode=-1;
for (int w = 0; w < nodeCount; w++)
{
if (!v[w])//未在V集合中
{
if(cost[w] {
minCost = cost[w];
curNode = w;
}
}
}//for 获取最小权值的节点
if (curNode == -1) break;//剩下都是不可通行的节点,跳出循环
v[curNode] = true;
for (int w = 0; w < nodeCount; w++)
{
if (!v[w] && (graph[curNode w] + cost[curNode] < cost[w]))
{
cost[w] = graph[curNode w] + cost[curNode];//更新权值
path[w] = curNode;//更新路径
}
}//for 更新其他节点的权值(距离)和路径
}//
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 18668 2016-10-18 15:46 最短路径Dijkstra\最短路径Dijkstra\bin\Debug\0.png
文件 25088 2016-10-18 17:17 最短路径Dijkstra\最短路径Dijkstra\bin\Debug\最短路径Dijkstra.exe
文件 28160 2016-10-18 17:17 最短路径Dijkstra\最短路径Dijkstra\bin\Debug\最短路径Dijkstra.pdb
文件 24216 2016-10-18 17:22 最短路径Dijkstra\最短路径Dijkstra\bin\Debug\最短路径Dijkstra.vshost.exe
文件 490 2015-07-10 19:01 最短路径Dijkstra\最短路径Dijkstra\bin\Debug\最短路径Dijkstra.vshost.exe.manifest
文件 2049 2016-10-18 17:17 最短路径Dijkstra\最短路径Dijkstra\DijkstraSolution.cs
文件 1644 2016-10-18 17:17 最短路径Dijkstra\最短路径Dijkstra\Form1.cs
文件 5524 2016-10-18 16:53 最短路径Dijkstra\最短路径Dijkstra\Form1.Designer.cs
文件 6909 2016-10-18 16:53 最短路径Dijkstra\最短路径Dijkstra\Form1.resx
文件 865 2016-10-18 15:45 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6959 2016-10-18 16:01 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 4608 2016-10-18 15:47 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\TempPE\Properties.Resources.Designer.cs.dll
文件 890 2016-10-18 17:22 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\最短路径Dijkstra.csproj.FileListAbsolute.txt
文件 1012 2016-10-18 16:53 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\最短路径Dijkstra.csproj.GenerateResource.Cache
文件 2211 2016-10-18 16:53 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\最短路径Dijkstra.csprojResolveAssemblyReference.cache
文件 25088 2016-10-18 17:17 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\最短路径Dijkstra.exe
文件 180 2016-10-18 16:53 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\最短路径Dijkstra.Form1.resources
文件 28160 2016-10-18 17:17 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\最短路径Dijkstra.pdb
文件 13453 2016-10-18 16:53 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\最短路径Dijkstra.Properties.Resources.resources
文件 501 2016-10-18 15:45 最短路径Dijkstra\最短路径Dijkstra\Program.cs
文件 1364 2016-10-18 15:45 最短路径Dijkstra\最短路径Dijkstra\Properties\AssemblyInfo.cs
文件 3241 2016-10-18 15:47 最短路径Dijkstra\最短路径Dijkstra\Properties\Resources.Designer.cs
文件 6189 2016-10-18 15:47 最短路径Dijkstra\最短路径Dijkstra\Properties\Resources.resx
文件 1107 2016-10-18 15:45 最短路径Dijkstra\最短路径Dijkstra\Properties\Settings.Designer.cs
文件 249 2016-10-18 15:45 最短路径Dijkstra\最短路径Dijkstra\Properties\Settings.settings
文件 3909 2016-10-18 16:53 最短路径Dijkstra\最短路径Dijkstra\最短路径Dijkstra.csproj
文件 1029 2016-10-18 15:45 最短路径Dijkstra\最短路径Dijkstra.sln
..A..H. 11776 2016-10-18 15:45 最短路径Dijkstra\最短路径Dijkstra.v12.suo
目录 0 2016-10-18 17:28 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\TempPE
目录 0 2016-10-18 17:28 最短路径Dijkstra\最短路径Dijkstra\bin\Debug
............此处省略9个文件信息
- 上一篇:基于Udp的五子棋对战游戏
- 下一篇:pads常用元件库
相关资源
- SVR算法程序可运行
- 计算机图形学 边填充算法实现代码
- 福建师范大学历年算法考卷
- 栈的实现及应用,六种基本算法
- Bresenham算法绘制线段并利用“橡皮筋
- 介绍几种压缩算法及《笨笨数据压缩
- 改进的BP神经网络算法
- A星算法_原理讲解_例子
- 云模型的相关算法cloud
- 旋转矩阵求欧拉角的简单算法
- 栅栏填充算法源码(VC)
- RSA算法源码
- 关联分析Apriori算法实现
- [免费]relax算法成像
- 操作系统 LRU算法 实验报告 及 程序代
- 分治法快速排序算法QuickSort C
- 现代谱估计算法 music ESPRIT 谐波分解
- MUSIC算法c 实现
- 007出纳管理系统 v7[1].5.94 算法注册机
- 克鲁斯卡尔算法C和C 实现代码
- capon波束形成算法-VC实现
- QGA 量子遗传算法
- 利用OpenGL写毛笔字算法
- 带头结点的单链表的c算法实现
- 自适应隐写算法wow
- 协同过滤算法源码
- RSA AES DES ECC加密算法源码
- 密码学课程设计:DES加密解密算法的
- 北航人工智能原理课大作业源代码,
- A*算法的2D演示(带源码)
评论
共有 条评论