用c++编写程序,用邻接矩阵作为存储结构,实现图的创建
时间: 2024-12-22 14:19:29 浏览: 7
在C++中,用邻接矩阵作为图的数据结构可以方便地表示图中各个顶点之间的连接。邻接矩阵是一个二维数组,其中行代表起点,列表示终点,值通常代表边的权重或者是布尔值(1表示有边,0表示无边)。以下是创建简单邻接矩阵图的基本步骤:
```cpp
#include <vector>
using namespace std;
// 定义邻接矩阵的节点数
const int V = 5; // 可以根据需要修改
class Graph {
private:
vector<vector<int>> adj; // 邻接矩阵
public:
// 构造函数,初始化邻接矩阵
Graph() {
adj.resize(V, vector<int>(V, 0)); // 初始化所有元素为0
}
// 添加边(u, v)
void addEdge(int u, int v) {
adj[u][v] = 1; // 如果(u, v)之间存在边,则对应的矩阵元素设为1
}
// 检查是否存在边 (u, v)
bool isEdge(int u, int v) {
return adj[u][v] != 0;
}
// 打印邻接矩阵
void printMatrix() {
for (int i = 0; i < V; ++i) {
for (int j = 0; j < V; ++j) {
cout << adj[i][j] << " ";
}
cout << endl;
}
}
};
int main() {
Graph g;
g.addEdge(0, 1); // 添加边0到1
g.addEdge(0, 4);
g.addEdge(1, 2);
g.addEdge(2, 0);
g.addEdge(2, 3);
g.printMatrix(); // 打印当前的邻接矩阵
return 0;
}
```
在这个例子中,`Graph` 类包含了邻接矩阵 `adj` 的定义以及基本操作如添加边、检查边和打印矩阵。在`main()` 函数中,我们创建了一个图实例并添加了几个边,最后展示了邻接矩阵的内容。
阅读全文