最短路徑Dijkstra演算法實驗報告

2021-08-10 13:44:32 字數 1136 閱讀 9073

class graph

;template

void graph::creat_graph()

template

void graph:: show_shortestpath()

template

void graph::shortestpath_dij()

d[v0]=0; final[v0]=true;

for(i=1;i<=vexnum;i++)

if(i==v0) continue;

min=int_max;

for(w=1;w<=vexnum;w++)

if(!final[w])

if(d[w]final[v]=true;

for(w=1;w<=vexnum;w++)

if(!final[w]&&(min+arcs[v][w]

d[w]=min+arcs[v][w];

for(j=0;j<=vexnum;j++)

path[w][j]=path[v][j];

path[w][w]=++path[w][0];

}int main()

4.除錯分析:

。經分析後將t賦值為char,當使用者輸入的r的元素為int時,我們可以將其轉化為char在進行後續操作,從而實現對使用者輸入的關係r中元素的無限制。

在類graph的模板外定義成員函 g.creat_graph()﹑g.shortestpath_dij()﹑

g.shortestpath_dij()時,由於成員函式中有型別引數存在,則需要在函式外進行模組宣告,並且在函式名字首上「類名《型別引數》∷」。

5.執行結果:

下圖為有向圖g的帶權鄰接矩陣,運用dijkstra演算法計算從a到其餘各頂點的最短路徑以及其長度。

a b c d e f

分析可知:

a10 ∞ 30 100從a到c的最短路徑為:ac,其長度為10;

b5從a到e的最短路徑為:a->e,其長度為30;

c50從a到d的最短路徑為:ae->d,其長度為50;

d10從a到f的最短路徑為:ae->d->f,其長度為60;

e20 ∞ 60而從a無法到達b。

f易知:執行結果完全正確。

Dijkstra最短路徑演算法實習報告

1.引言 交通誘導系統的乙個核心技術是最優路徑的選擇技術。根據交通網路模型中各頂點和頂點之間的長度 時間或費用等屬性權值,通過dijkstra最短路徑演算法,解決有向圖即交通網路模型中源點到其他頂點的最短路徑問題。2.建立交信道路網路模型 交信道路網是路徑誘導的基礎和物件,首先需要建立交信道路網路模...

最短路徑演算法 三種演算法簡介

dijkstra演算法,a 演算法和d 演算法 dijkstra演算法是典型最短路演算法,用於計算乙個節點到其他所有節點的最短路徑。主要特點是以起始點為中心向外層層擴充套件,直到擴充套件到終點為止。dijkstra演算法能得出最短路徑的最優解,但由於它遍歷計算的節點很多,所以效率低。dijkstra...

最短路徑問題 專題

初中數學中最短路徑問題雖然只是乙個課題學習,但它在中學數學中的地位很重要,是大考 小考 競賽中經常涉及的乙個考點。所以我們要對它有足夠的重視。初中最短路徑問題主要針對軸對稱圖形考慮的。那麼只要涉及軸對稱圖形就有可能產生最短路徑問題。在此之前,我們接觸過的最短距離問題是 1 兩點間直線段最短 2 點到...