利用邻接矩阵存储方式实现图类,完成构造函数和输出函数
时间: 2024-02-15 20:04:26 浏览: 27
好的,下面是使用邻接矩阵存储方式实现图类的构造函数和输出函数的示例代码:
```cpp
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 图的最大节点数
class Graph {
private:
int vertexNum; // 节点数
int edgeNum; // 边数
int matrix[MAXSIZE][MAXSIZE]; // 邻接矩阵
public:
// 构造函数
Graph(int v, int e) {
vertexNum = v;
edgeNum = e;
// 初始化邻接矩阵
for (int i = 0; i < v; i++) {
for (int j = 0; j < v; j++) {
matrix[i][j] = 0;
}
}
// 输入每条边的信息,并将其存储到邻接矩阵中
for (int k = 0; k < e; k++) {
int i, j;
cin >> i >> j;
matrix[i][j] = 1;
matrix[j][i] = 1; // 无向图需要将对称位置也赋值为1
}
}
// 输出函数
void printGraph() {
cout << "Vertex Number: " << vertexNum << endl;
cout << "Edge Number: " << edgeNum << endl;
cout << "Adjacency Matrix: " << endl;
for (int i = 0; i < vertexNum; i++) {
for (int j = 0; j < vertexNum; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
}
};
int main() {
int v, e;
cout << "Enter the number of vertices: ";
cin >> v;
cout << "Enter the number of edges: ";
cin >> e;
Graph g(v, e);
g.printGraph();
return 0;
}
```
这里我们通过邻接矩阵来存储图,构造函数中先将邻接矩阵全部初始化为0,然后输入每条边的信息,将其存储到邻接矩阵中。输出函数中,我们输出节点数、边数和邻接矩阵。