利用c++创作无向网的邻接矩阵
时间: 2024-12-03 08:11:36 浏览: 19
C++实现图的邻接矩阵表示
在C++中创建无向图的邻接矩阵通常会涉及到二维数组或动态分配的std::vector来存储每个顶点与其邻居的关系。以下是基本步骤:
1. 定义一个数据结构表示图,比如一个邻接矩阵`std::vector<std::vector<int>> adjMatrix;`,其中`adjMatrix[i]`代表第i个节点的邻接列表。
2. 创建一个无向图类,初始化函数里可以为空矩阵或根据需要设置初始状态。
```cpp
class Graph {
public:
int V; // 顶点数
std::vector<std::vector<int>> adjMatrix;
Graph(int vertices) : V(vertices), adjMatrix(V, std::vector<int>()) {}
};
```
3. 添加边的方法,例如添加连接两个节点的边:
```cpp
void addEdge(Graph &g, int src, int dest) {
g.adjMatrix[src].push_back(dest); // 添加到源节点的邻接表
g.adjMatrix[dest].push_back(src); // 添加到目的节点的邻接表,因为图是无向的
}
```
4. 访问邻接矩阵或查找特定节点的邻居:
```cpp
// 查找节点n的邻居
for (int neighbor : g.adjMatrix[n]) {
std::cout << "Node " << n << " is connected to " << neighbor << "\n";
}
```
阅读全文