实验内容与要求:
根据输入的图形,输入起点和终点,求出最短路径和最短路径的长度。
具体步骤:
1. 编写一段代码,接收键盘的输入定点的数量,并以输入的整数作为边来建立图形的邻接矩阵(无向权重图)。
例如:5 6 12
表示顶点5和顶点6之间有边,边的权重为12
2. 打印出邻接矩阵。
3. 输入起点和终点。
4. 打印最短路径和最短路径的长度。
样例:数据测试
输入:
1 3 5
1 4 30
2 1 2
3 2 15
3 6 7
5 4 4
6 4 10
6 5 18
打印出1,5两点之间的最短距离和最短路径
代码
#include<iostream>
using namespace std;
#define MaxInt 32767
#define MVnum 100
typedef int VextexType;
typedef int ArcType;
bool vis[MVnum];
int dis[MVnum];
int Path[MVnum];
int path[MVnum];
typedef struct{
ArcType arcs[MVnum][MVnum];
int vexnum,arcnum;
}AMGraph;
void CreateUDN(AMGraph &G){
cout<<"请输入顶点数和边数:";
cin>>G.vexnum>>G.arcnum;
for(int i=1