資料結構課程設計 迪傑斯特拉

2021-08-29 03:05:45 字數 733 閱讀 8193

#include#include#define inf 0x3f3f3f3f//用來表示正無窮

#define max 100 //最多可存放100個頂點

using namespace std;

typedef pairp; //用於優先佇列中距離與頂點的對應,其中first為距離,second為原點到達的點

bool visit[max]; //標記為已找出最短路徑的點

int v,e,s; //v為點的個數,e為邊的個數,s為源點

int graph[max][max]; //圖的儲存採用鄰接矩陣

int dist[max]; //dist表示當前點距源點最短距離,最終為最短距離

int path[max];

void init();//初始化

void dijkstra(const int s);

void dfs(const int x);//將路徑回溯出來

int main(void)

cout<<"請輸入源點:"<>s;

dijkstra(s);

cout<"<"<"<,greater>que;//將pair放入優先佇列,並且規定按照pair.first的較小值建立優先權

que.push(p(0,s));

while(que.size())}}

}void dfs(const int x)

迪傑斯特拉演算法 資料結構

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

迪傑斯特拉演算法

if object id t test is not null drop table t test gocreate table dbo t test id int identity 1,1 not null primary key,自增字段,無意義 header varchar 500 第一點的名...

迪傑斯特拉演算法

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