?? floydp1.txt
字號(hào):
//最短路徑FloydP1.cpp
#include<iostream.h>
#include<iomanip.h>
#include "graph.cpp"
#include "FloydP.h"
//弗洛伊德算法測(cè)試
void main()
{cout<<"FloydP1.cpp運(yùn)行結(jié)果:\n";
int n=6,k1=1,k2=1,i,j;
AdjMatrix g(n,k2);
g.CreateMatrix(n,k1,k2);
cout<<"輸出鄰接矩陣相應(yīng)圖的頂點(diǎn):\n";
g.Creatgraph(n,k2);
int m=g.NumV();
int dist[6][6],path[6][6];
Floyd(g,dist,path);
for(i=0;i<m;i++)
{cout<<"從頂點(diǎn)"<<g.GetValue(i)
<<"到其他各頂點(diǎn)的最短距離為:\n";
for(j=0;j<m;j++)
cout<<"到頂點(diǎn)"<<g.GetValue(j)
<<"的最短距離為:"<<dist[i][j]<<endl;
cout<<"從頂點(diǎn)"<<g.GetValue(i)
<<"到其他各頂點(diǎn)的最短路徑的前一頂點(diǎn)為:\n";
for(j=0;j<m;j++)
if(path[i][j]!=-1)
cout<<"到頂點(diǎn)"<<g.GetValue(j)<<"的前一頂點(diǎn)為:"
<<g.GetValue(path[i][j])<<endl;
}
cin.get();cin.get();}
FloydP1.cpp運(yùn)行結(jié)果:
輸入圖的總邊數(shù):9
輸入9條有向有權(quán)邊的起點(diǎn)和終點(diǎn)序號(hào)及權(quán)值!
0 2 5 0 3 30 1 0 2 1 4 8 2 1 15
2 5 7 4 3 4 5 3 10 5 4 18
創(chuàng)建后的鄰接矩陣:
0 99 5 30 99 99
2 0 99 99 8 99
99 15 0 99 99 7
99 99 99 0 99 99
99 99 99 4 0 99
99 99 99 10 18 0
輸出鄰接矩陣相應(yīng)圖的頂點(diǎn):
A(0,2,5) B(0,3,30) C(1,0,2) D(1,4,8) E(2,1,15) F(2,5,7)
從頂點(diǎn)A到其他各頂點(diǎn)的最短距離為:
到頂點(diǎn)A的最短距離為:0
到頂點(diǎn)B的最短距離為:20
到頂點(diǎn)C的最短距離為:5
到頂點(diǎn)D的最短距離為:22
到頂點(diǎn)E的最短距離為:28
到頂點(diǎn)F的最短距離為:12
從頂點(diǎn)A到其他各頂點(diǎn)的最短路徑的前一頂點(diǎn)為:
到頂點(diǎn)A的前一頂點(diǎn)為:A
到頂點(diǎn)B的前一頂點(diǎn)為:C
到頂點(diǎn)C的前一頂點(diǎn)為:A
到頂點(diǎn)D的前一頂點(diǎn)為:F
到頂點(diǎn)E的前一頂點(diǎn)為:B
到頂點(diǎn)F的前一頂點(diǎn)為:C
從頂點(diǎn)B到其他各頂點(diǎn)的最短距離為:
到頂點(diǎn)A的最短距離為:2
到頂點(diǎn)B的最短距離為:0
到頂點(diǎn)C的最短距離為:7
到頂點(diǎn)D的最短距離為:12
到頂點(diǎn)E的最短距離為:8
到頂點(diǎn)F的最短距離為:14
從頂點(diǎn)B到其他各頂點(diǎn)的最短路徑的前一頂點(diǎn)為:
到頂點(diǎn)A的前一頂點(diǎn)為:B
到頂點(diǎn)B的前一頂點(diǎn)為:A
到頂點(diǎn)C的前一頂點(diǎn)為:A
到頂點(diǎn)D的前一頂點(diǎn)為:E
到頂點(diǎn)E的前一頂點(diǎn)為:B
到頂點(diǎn)F的前一頂點(diǎn)為:C
從頂點(diǎn)C到其他各頂點(diǎn)的最短距離為:
到頂點(diǎn)A的最短距離為:17
到頂點(diǎn)B的最短距離為:15
到頂點(diǎn)C的最短距離為:0
到頂點(diǎn)D的最短距離為:17
到頂點(diǎn)E的最短距離為:23
到頂點(diǎn)F的最短距離為:7
從頂點(diǎn)C到其他各頂點(diǎn)的最短路徑的前一頂點(diǎn)為:
到頂點(diǎn)A的前一頂點(diǎn)為:B
到頂點(diǎn)B的前一頂點(diǎn)為:C
到頂點(diǎn)C的前一頂點(diǎn)為:A
到頂點(diǎn)D的前一頂點(diǎn)為:F
到頂點(diǎn)E的前一頂點(diǎn)為:B
到頂點(diǎn)F的前一頂點(diǎn)為:C
從頂點(diǎn)D到其他各頂點(diǎn)的最短距離為:
到頂點(diǎn)A的最短距離為:99
到頂點(diǎn)B的最短距離為:99
到頂點(diǎn)C的最短距離為:99
到頂點(diǎn)D的最短距離為:0
到頂點(diǎn)E的最短距離為:99
到頂點(diǎn)F的最短距離為:99
從頂點(diǎn)D到其他各頂點(diǎn)的最短路徑的前一頂點(diǎn)為:
到頂點(diǎn)D的前一頂點(diǎn)為:A
從頂點(diǎn)E到其他各頂點(diǎn)的最短距離為:
到頂點(diǎn)A的最短距離為:99
到頂點(diǎn)B的最短距離為:99
到頂點(diǎn)C的最短距離為:99
到頂點(diǎn)D的最短距離為:4
到頂點(diǎn)E的最短距離為:0
到頂點(diǎn)F的最短距離為:99
從頂點(diǎn)E到其他各頂點(diǎn)的最短路徑的前一頂點(diǎn)為:
到頂點(diǎn)D的前一頂點(diǎn)為:E
到頂點(diǎn)E的前一頂點(diǎn)為:A
從頂點(diǎn)F到其他各頂點(diǎn)的最短距離為:
到頂點(diǎn)A的最短距離為:99
到頂點(diǎn)B的最短距離為:99
到頂點(diǎn)C的最短距離為:99
到頂點(diǎn)D的最短距離為:10
到頂點(diǎn)E的最短距離為:18
到頂點(diǎn)F的最短距離為:0
從頂點(diǎn)F到其他各頂點(diǎn)的最短路徑的前一頂點(diǎn)為:
到頂點(diǎn)D的前一頂點(diǎn)為:F
到頂點(diǎn)E的前一頂點(diǎn)為:F
到頂點(diǎn)F的前一頂點(diǎn)為:A
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -