展示有向图的邻接矩阵代码C++
时间: 2024-10-21 22:01:12 浏览: 19
有向图邻接矩阵c++运算操作
在C++中,展示有向图的邻接矩阵通常是通过二维数组或`std::vector<std::vector<int>>`来实现的。邻接矩阵是一个表示图中顶点之间边连接关系的数据结构,其中行代表起点,列代表终点,元素值表示是否有边。
这是一个简单的例子:
```cpp
#include <iostream>
#include <vector>
// 定义邻接矩阵
std::vector<std::vector<int>> adjMatrix;
void addEdge(int src, int dest) {
// 确保索引在范围内
if (src >= 0 && src < adjMatrix.size() && dest >= 0 && dest < adjMatrix[src].size()) {
adjMatrix[src][dest] = 1; // 通常1表示存在边,0表示不存在
} else {
std::cout << "Invalid vertex index.\n";
}
}
// 打印邻接矩阵
void printAdjMatrix() {
for (int i = 0; i < adjMatrix.size(); ++i) {
for (int j = 0; j < adjMatrix[i].size(); ++j) {
if (adjMatrix[i][j]) {
std::cout << "(" << i << "," << j << ") -> ";
} else {
std::cout << " ";
}
}
std::cout << "\n";
}
}
int main() {
// 初始化一个5x5的邻接矩阵
adjMatrix.resize(5);
for (auto &row : adjMatrix)
row.resize(5);
// 添加一些边到矩阵中
addEdge(0, 1); // 从节点0到节点1
addEdge(2, 4); // 从节点2到节点4
// 打印邻接矩阵
printAdjMatrix();
return 0;
}
```
在这个例子中,`addEdge`函数用于添加边,`printAdjMatrix`函数则用于显示邻接矩阵的内容。注意,这只是一个基础的实现,实际应用可能会根据需求进行更复杂的数据结构设计。
阅读全文