我今天看了一天的這個演算法,硬是沒有搞明白,好吧,推薦大家看看土豆上邊的乙個叫 正月點燈籠 的人,講的很好。
# include # define inf 0x7fffffff
# define maxn 50
int matrix[maxn][maxn];
void dijkstra(int out, int n, int v0)
; int last_visited = 0;
for (i=0; iout[i] = inf;
visited[v0] = 1;
out[v0] = 0;
for (i=0; i}
}//找出最小值
int minindex = 0;
while (visited[minindex] == 1) //找到第乙個未被訪問的下標
minindex++;
for (j=minindex; j//迴圈結束後,minindex中儲存的是最小的值得下標
last_visited = out[minindex]; //更新最小值
visited[minindex] = 1; //將最小值頂點擊出
v0 = minindex; //下次查詢從最小值頂點開始
}}int main()
}dijkstra(result, n, 0);
for (i=0; ireturn 0;
}
迪傑斯特拉演算法 C語言
include include define infin 65535 define max vertex num 20 int final 6 typedef enum graphkind 有向圖,有向網,無向圖,無向網 typedef struct arccell arccell,adjmatri...
c語言實現迪傑斯特拉演算法(鄰接表)
儲存結構,結構體的定義 權值w用於表示兩點間路徑的花費 typedef int status typedef struct enode 圖的鄰接表定義 enode typedef struct lgraph lgraph 迪傑斯特拉演算法 int choose int d,int s,int n 每...
C 迪傑斯特拉演算法
網上有許多版本的,自己還是寫乙個理解點 dijkstra.cs public class dijkstra public void initweights list weights public listfind string start,string end var s nodes.where x...