实现Dijkstra算法--最短路径

实现Dijkstra算法。

 

输入:

6 \\图中顶点个数

0

1

2

3

4

5

8  \\图中边的个数,有向边方式输入

0 2 10

0 4 30

0 5 100

1 2 5

2 3 50

3 5 10

4 3 20

4 5 60

 

输出:

1000:0   \\1000代表无穷大

10:2<-0

50:3<-4<-0

30:4<-0

60:5<-3<-4<-0

输入输出样例:1组

#1

  • 样例输入:
    6
    0
    1
    2
    3
    4
    5
    8
    0 2 10
    0 4 30
    0 5 100
    1 2 5
    2 3 50
    3 5 10
    4 3 20
    4 5 60
  • 样例输出:
    1000:0
    10:2<-0
    50:3<-4<-0
    30:4<-0
    60:5<-3<-4<-0
    #include 
    #include 
    typedef struct diotInformationl
    {
    		int isingather;
    		int from1_road_indexing;
    		int road_long;
    }diotInformation;
    int main()
    {
    	int n,i,j;
    	scanf("%d", &n);
    	//创建二维数组的邻接矩阵
    	int **juzhen=(int**)malloc(sizeof(int*)*n);
    	for (i = 0; i < n; i++) {
    		juzhen[i] = (int*)malloc(sizeof(int)*n);
    	}
    	for (i = 0; i < n; i++) {
    		for (j = 0; j < n; j++) {
    			juzhen[i][j] = 1000;
    		}
    	}
    	//读数
    	int *diotvalue=(int*)malloc(sizeof(int)*n);
    	for (i = 0; i < n; i++) {
    		scanf("%d", &diotvalue[i]);
    	}
    	//读路径
    	int a, b, longs,count;
    	scanf("%d", &count);
    	for (i = 0;i

     

你可能感兴趣的:(数据结构)