資源簡(jiǎn)介
DIJKSTRA單源最短路徑算法C/C++實(shí)現(xiàn),內(nèi)有注釋,輸入鄰接矩陣,輸入源點(diǎn)到終點(diǎn)最短路徑長(zhǎng)度。
代碼片段和文件信息
#include?
#include?
#define?MAX?20
int?mincost(int?V[]?int?D[]?int?n);
int?main()
{
????int?C[MAX][MAX];
????int?D[MAX]?V[MAX]?=?{?0?};?/*數(shù)組V用來(lái)表示每次計(jì)算加入集合V的點(diǎn),1為加入了,0為還沒(méi)有加入*/
????int?n?i?j?k?w?sum;
????printf(“請(qǐng)輸入頂點(diǎn)個(gè)數(shù):“);
????scanf(“%d“?&n);
????printf(“\n請(qǐng)輸入建立后的臨接矩陣(用n*n矩陣表示)?輸入100000表示無(wú)窮大:\n“);
????for(i?=?1;?i?<=?n;?i++)
????{
????????for(j?=?1;?j?<=?n;?j++)
????????{
????????????scanf(“%d“?&C[i][j]);
????????}
????}
????V[1]?=?1;???/*1為源點(diǎn)*/
????for(i?=?1;?i?<=?n;?i++)
????{
????????D[i]?=?C[1][i];??/*D置初值*/
????}
????for(i?=?1;?i?<=?n;?i++)
????{
????????/*從集合S(即沒(méi)有經(jīng)過(guò)計(jì)算的點(diǎn))中選出一個(gè)點(diǎn)w(即V中值為0),使D[w]值最小*/
????????w?=?mincost(V?D?n);
評(píng)論
共有 條評(píng)論