資源簡(jiǎn)介
程序采用迪杰特拉斯(Dijkstra)算法求解帶權(quán)值的有向圖中從某個(gè)起始節(jié)點(diǎn)到其它節(jié)點(diǎn)的最短路徑。
開發(fā)環(huán)境:vs2013,.NET4.0

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
namespace?最短路徑Dijkstra
{
class?DijkstraSolution
{
????/*
????????*?求解各節(jié)點(diǎn)最短路徑,獲取path,和cost數(shù)組,
????????*?path[i]表示vi節(jié)點(diǎn)的前繼節(jié)點(diǎn)索引,一直追溯到起點(diǎn)。
????????*?cost[i]表示vi節(jié)點(diǎn)的花費(fèi)
????????*/
????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)//如果是出發(fā)點(diǎn)
????????????{
????????????????v[i]?=?true;//
????????????}
????????????else
????????????{
????????????????cost[i]?=?graph[startIndexi?];
????????????????if?(cost[i]?????????????????else?path[i]?=?-1;
????????????????v[i]?=?false;
????????????}
????????}
????????//
????????for(int?i=1;i ????????{
????????????int?minCost?=?max?;
????????????int?curNode=-1;
????????????for?(int?w?=?0;?w?????????????{
????????????????if?(!v[w])//未在V集合中
????????????????{?
????????????????????if(cost[w] ????????????????????{
????????????????????????minCost?=?cost[w];
????????????????????????curNode?=?w;
????????????????????}
????????????????}
????????????}//for??獲取最小權(quán)值的節(jié)點(diǎn)
????????????if?(curNode?==?-1)?break;//剩下都是不可通行的節(jié)點(diǎn),跳出循環(huán)
????????????v[curNode]?=?true;
????????????for?(int?w?=?0;?w?????????????{
????????????????if?(!v[w]?&&?(graph[curNode?w]?+?cost[curNode]?????????????????{
????????????????????cost[w]?=?graph[curNode?w]?+?cost[curNode];//更新權(quán)值
????????????????????path[w]?=?curNode;//更新路徑
????????????????}
????????????}//for?更新其他節(jié)點(diǎn)的權(quán)值(距離)和路徑
????????}//
????}
}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????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個(gè)文件信息
- 上一篇:基于Udp的五子棋對(duì)戰(zhàn)游戲
- 下一篇:pads常用元件庫
評(píng)論
共有 條評(píng)論