C++中邻接矩阵的表示方法
时间: 2024-10-08 21:21:34 浏览: 29
C++ 邻接矩阵
在C++中,邻接矩阵是图的一种常见数据结构,用于表示网络中节点之间的连接关系。它是一个二维数组,其中每个元素代表两个顶点之间是否存在边。如果存在边,对应的矩阵元素通常设置为非零值(比如1、true或某个特定整数),否则为0或false。
以下是如何使用邻接矩阵表示无向图的一个简单示例:
```cpp
#include <vector>
// 图的节点类型
using Node = int;
// 邻接矩阵的定义
std::vector<std::vector<bool>> adjacencyMatrix(Nodes numNodes); // 假设Nodes为图中的顶点数量
void addEdge(Node nodeA, Node nodeB) {
adjacencyMatrix[nodeA][nodeB] = true; // 添加从nodeA到nodeB的边
adjacencyMatrix[nodeB][nodeA] = true; // 对于无向图,要添加双向边,所以也添加从nodeB到nodeA
}
bool isConnected(Node nodeA, Node nodeB) {
return adjacencyMatrix[nodeA][nodeB]; // 检查两个节点是否直接相连
}
```
在这个例子中,`adjacencyMatrix[nodeA][nodeB]`检查的是节点A到节点B是否有边。如果是有向图,可能只需要单向边,那么就只存储其中一个方向的关系。
阅读全文