C語言實現 迪傑斯特拉演算法

2021-07-14 23:08:48 字數 758 閱讀 6970

我今天看了一天的這個演算法,硬是沒有搞明白,好吧,推薦大家看看土豆上邊的乙個叫 正月點燈籠 的人,講的很好。 

# 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...