最短路径

Posted 任我主宰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最短路径相关的知识,希望对你有一定的参考价值。

参考博客:https://blog.csdn.net/tianhaobing/article/details/65443049

 1 #include<iostream>
 2 using namespace std;
 3 int main(){
 4     int A[100][100];
 5     int flag[10]={0};
 6     int dis[10];
 7     int point;
 8     int edge;
 9     int inf = 99999999;
10     cin>>point>>edge;
11     for(int i=1;i<=point;i++){
12         for(int j=1;j<=point;j++){
13             if(i!=j) A[i][j] = inf;
14             else A[i][i] = 0; 
15         }
16     }
17     
18     for(int i=1;i<=edge;i++){
19         int t1,b,c;
20         cin>>t1>>b>>c;
21         A[t1][b] = c;
22         //A[b][a] = c;
23     } 
24     
25     
26     for(int i=1;i<=point;i++){
27         dis[i] = A[1][i];
28     }
29     
30     flag[1] = 1;
31     
32     int index ;
33     
34     for(int i=1;i<=point;i++){
35         int min = inf;
36         for(int j=1;j<=point;j++){
37             if(dis[j]<min && flag[j]==0){
38                 min = dis[j];
39                 index = j;
40             }
41         }
42         
43         flag[index] = 1;
44         
45         for(int k=1;k<=point;k++){
46             if(A[index][k] < inf){
47                 if(dis[k] > dis[index] + A[index][k] ){
48                     dis[k] = dis[index] + A[index][k];
49                 }
50             }
51         }
52             
53     }
54     
55     for(int i=1;i<=point;i++){
56         cout<<"The distance form point 1 to point "<<i<<" is  "<<dis[i]<<endl;
57     }
58     
59     
60     
61     
62     
63     
64 } 

 

以上是关于最短路径的主要内容,如果未能解决你的问题,请参考以下文章

(王道408考研数据结构)第六章图-第四节3:最短路径之BFS算法(思想代码演示答题规范)

最短路径(Dijkstra算法)

最短路径 深入浅出Dijkstra算法(一)

快看!一条进入公益传播的最短路径就在眼前

最短路径

最短路径问题-Dijkstra(基于图的ADT)