資源簡(jiǎn)介
本程序使用C語言實(shí)現(xiàn)了Dijkstra算法。程序中,定義好鄰接矩陣,可以計(jì)算出任一節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的最短路徑,并打印路徑與長(zhǎng)度。其中對(duì)最短路徑的存儲(chǔ)是依據(jù)所得到的生成樹,可以減少內(nèi)存空間占用。
代碼片段和文件信息
//給定鄰接矩陣,采用Dijkstra算法計(jì)算某一節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的最短路徑
#include
#define?uchar?unsigned?char
#define?N?6 //節(jié)點(diǎn)數(shù)目
int?adj[N][N]={ //鄰接矩陣,adj[i][j]表示節(jié)點(diǎn)i至節(jié)點(diǎn)j的直連路徑長(zhǎng)度,其中99表示i與j不直連
{019949999}?
{10399199}
{99309912}
{499990199}
{9911104}
{999929940}};
//節(jié)點(diǎn)source至其他節(jié)點(diǎn)的最短路徑表
struct?shpt
{
char?source; //源節(jié)點(diǎn)
struct //這些路徑剛好構(gòu)成一個(gè)生成樹,有N-1條鏈路,為方便處理,加上一條從source到source的長(zhǎng)度為0的鏈路
{
char?start; //鏈路起點(diǎn)
char?end; //鏈路終點(diǎn)
}link[N];
int?len[N]; //source到所有節(jié)點(diǎn)的最短路徑長(zhǎng)度
}xto;
void?main()
{
int?ij;
char?min_nmin_vsour; //min_n:最小值對(duì)應(yīng)節(jié)點(diǎn),min_v:最小值,sour:源節(jié)點(diǎn)
int dis_tmp[N]; //當(dāng)前最短路徑值
char?trans[N]; //以誰為中轉(zhuǎn)
char?decided[N]={0}; //節(jié)點(diǎn)i的最短路徑已確定
//初始化
printf(“輸入起始節(jié)點(diǎn):“);
scanf(“%d“&sour);sour--
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-08-09?01:06??Dijkstra算法\
?????目錄???????????0??2015-08-09?01:05??Dijkstra算法\Debug\
?????文件??????184398??2015-08-09?01:05??Dijkstra算法\Debug\Dijkstra算法.exe
?????文件??????182244??2015-08-09?01:05??Dijkstra算法\Debug\Dijkstra算法.ilk
?????文件????????4544??2015-08-09?01:05??Dijkstra算法\Debug\Dijkstra算法.obj
?????文件??????203800??2015-08-09?01:05??Dijkstra算法\Debug\Dijkstra算法.pch
?????文件??????361472??2015-08-09?01:05??Dijkstra算法\Debug\Dijkstra算法.pdb
?????文件???????33792??2015-08-09?01:05??Dijkstra算法\Debug\vc60.idb
?????文件???????45056??2015-08-09?01:05??Dijkstra算法\Debug\vc60.pdb
?????文件????????2313??2015-08-09?00:54??Dijkstra算法\Dijkstra算法.cpp
?????文件????????3475??2015-08-09?01:04??Dijkstra算法\Dijkstra算法.dsp
?????文件?????????532??2015-08-09?01:04??Dijkstra算法\Dijkstra算法.dsw
?????文件???????41984??2015-08-09?01:06??Dijkstra算法\Dijkstra算法.ncb
?????文件???????48640??2015-08-09?01:06??Dijkstra算法\Dijkstra算法.opt
?????文件?????????780??2015-08-09?01:05??Dijkstra算法\Dijkstra算法.plg
評(píng)論
共有 條評(píng)論