设计巭个实现创建无向网的程序;邻巁矩阵作巟存储结构。算法思想: (1) 定义图的顺序存储结构; (2) 创建无向网,采用邻巁矩阵表示(调用CreateUDN函数实现),具体实现如下: 输入图的顶点数和边数; 依次输入顶点的巬息存入顶点表中; 匘始化邻巁矩阵,使巪个权值匘始化巟极大值; 构造邻巁矩阵;(需调用LocateVex函数获取顶点在顶点表中的下标) (3) 输巰图的邻巁矩阵(调用PrintUDN函数实现)。 注意:顶点数据仅巟1个数字或1个字符。 输入说明: 第巭行输入图的顶点数和边数; 第二行依次输入巪个顶点的数据; 其余各行的巪行输入巭条边的巬息。 输巰说明: 输巰图的邻巁矩阵,其中巪个值用6个宽度输巰且右对齐,最大值输巰∞。 输入样例: 4 5 A B C D A B 500 A C 200 A D 150 B C 400 C D 600 输巰样例: ∞ 500 200 150 500 ∞ 400 ∞ 200 400 ∞ 600 150 ∞ 600 ∞
时间: 2023-06-10 12:06:36 浏览: 91
以下是使用C++编写的程序,实现创建无向网的过程,并输出邻接矩阵:
```c++
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
// 定义无向网的顺序存储结构
const int MAX_VERTEX_NUM = 100;
const int INFINITY = 1000000; // 定义权值极大值
typedef char VertexType; // 顶点数据类型
typedef int EdgeType; // 权值类型
typedef struct {
VertexType vexs[MAX_VERTEX_NUM]; // 存储顶点的数组
EdgeType edges[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; // 存储邻接矩阵的数组
int vexnum, edgenum; // 顶点数和边数
} MGraph;
// 获取顶点在顶点表中的下标
int LocateVex(MGraph G, VertexType v) {
for (int i = 0; i < G.vexnum; i++) {
if (G.vexs[i] == v) {
return i;
}
}
return -1;
}
// 创建无向网
void CreateUDN(MGraph &G) {
// 输入图的顶点数和边数
cin >> G.vexnum >> G.edgenum;
// 依次输入顶点的信息存入顶点表中
for (int i = 0; i < G.vexnum; i++) {
cin >> G.vexs[i];
}
// 初始化邻接矩阵,使每个权值初始化为极大值
for (int i = 0; i < G.vexnum; i++) {
for (int j = 0; j < G.vexnum; j++) {
G.edges[i][j] = INFINITY;
}
}
// 构造邻接矩阵
for (int i = 0; i < G.edgenum; i++) {
VertexType v1, v2;
EdgeType w;
cin >> v1 >> v2 >> w;
int index1 = LocateVex(G, v1);
int index2 = LocateVex(G, v2);
G.edges[index1][index2] = w;
G.edges[index2][index1] = w; // 无向图的邻接矩阵是对称的
}
}
// 输出无向网的邻接矩阵
void PrintUDN(MGraph G) {
for (int i = 0; i < G.vexnum; i++) {
for (int j = 0; j < G.vexnum; j++) {
if (G.edges[i][j] == INFINITY) {
cout.width(6);
cout << right << "∞";
} else {
cout.width(6);
cout << right << G.edges[i][j];
}
}
cout << endl;
}
}
int main() {
MGraph G;
CreateUDN(G);
PrintUDN(G);
return 0;
}
```
输入样例:
```
4 5
A B C D
A B 500
A C 200
A D 150
B C 400
C D 600
```
输出样例:
```
∞ 500 200 150
500 ∞ 400 ∞
200 400 ∞ 600
150 ∞ 600 ∞
```
阅读全文