二维vector 建立邻接表有向图
时间: 2023-11-02 11:03:10 浏览: 97
有向图的构建(邻接表)
5星 · 资源好评率100%
二维vector可以用来表示邻接表有向图。首先,我们可以通过声明一个二维vector来创建一个邻接表,其中第一维表示节点的索引,第二维表示该节点的邻居节点。
例如,假设我们有n个节点,可以使用一个大小为n的二维vector。我们可以初始化每个节点的邻居列表为空,然后通过添加边来建立有向图。每个节点的邻居列表将存储该节点指向的其他节点。
举个例子,如果我们有4个节点,可以这样建立一个有向图的邻接表:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n = 4; // 节点数量
vector<vector<int>> adjList(n); // 声明邻接表二维vector
// 添加边,建立有向图
adjList[0].push_back(1); // 0 -> 1
adjList[0].push_back(2); // 0 -> 2
adjList[1].push_back(2); // 1 -> 2
adjList[2].push_back(0); // 2 -> 0
adjList[2].push_back(3); // 2 -> 3
adjList[3].push_back(3); // 3 -> 3
// 打印邻接表
for (int i = 0; i < n; i++) {
cout << "节点 " << i << " 的邻居节点有:";
for (int j = 0; j < adjList[i].size(); j++) {
cout << adjList[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
以上代码将输出:
```
节点 0 的邻居节点有:1 2
节点 1 的邻居节点有:2
节点 2 的邻居节点有:0 3
节点 3 的邻居节点有:3
```
这样我们就通过二维vector建立了一个有向图的邻接表。
阅读全文