?? algo7-10.cpp
字號:
// algo7-10.cpp 實現算法7.16的程序
#include"c1.h"
#include"func7-1.cpp" // 包括頂點信息類型的定義及對它的操作
#include"func7-2.cpp" // 包括弧(邊)的相關信息類型的定義及對它的操作
#include"c7-1.h" // 圖的數組(鄰接矩陣)存儲結構
#include"bo7-1.cpp" // 圖的數組(鄰接矩陣)存儲結構的基本操作
typedef char PathMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM][MAX_VERTEX_NUM];
// 三維數組,其值只可能是0或1,故用char類型以減少存儲空間的浪費
typedef VRType DistancMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; // 二維數組
#include"func7-8.cpp" // 求有向網中各對頂點之間最短距離的Floyd算法
void main()
{
MGraph g;
int i,j,k;
PathMatrix p; // 三維數組
DistancMatrix d; // 二維數組
CreateDN(g); // 構造有向網g
for(i=0;i<g.vexnum;i++)
g.arcs[i][i].adj=0;
// ShortestPath_FLOYD()要求對角元素值為0,因為兩點相同,其距離為0
Display(g); // 輸出有向網g
ShortestPath_FLOYD(g,p,d); // 求每對頂點間的最短路徑。在func7-8.cpp中
printf("d矩陣:\n");
for(i=0;i<g.vexnum;i++)
{ for(j=0;j<g.vexnum;j++)
printf("%6d",d[i][j]);
printf("\n");
}
printf("p矩陣:\n");
for(i=0;i<g.vexnum;i++)
for(j=0;j<g.vexnum;j++)
if(i!=j)
{ printf("由%s到%s經過:",g.vexs[i].name,g.vexs[j].name);
for(k=0;k<g.vexnum;k++)
if(p[i][j][k]==1)
printf("%s ",g.vexs[k].name);
printf("\n");
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -