c++邻接表
时间: 2023-07-04 09:17:10 浏览: 56
邻接表是一种表示图的数据结构,可以用来存储节点之间的连接关系。在C++中,可以使用链表来实现邻接表。
下面是一个简单的示例代码:
```c++
const int MAX_N = 100; // 最大节点数
vector<int> G[MAX_N]; // 邻接表
int n, m; // 节点数和边数
void init() {
for (int i = 0; i < n; i++) {
G[i].clear(); // 清空每个节点的邻接表
}
}
void add_edge(int u, int v) {
G[u].push_back(v); // 添加边
}
void remove_edge(int u, int v) {
for (int i = 0; i < G[u].size(); i++) {
if (G[u][i] == v) {
G[u].erase(G[u].begin() + i); // 删除边
break;
}
}
}
```
在这个例子中,我们使用数组 `G` 存储邻接表,其中 `G[i]` 表示节点 `i` 的邻接表,存储了节点 `i` 直接连接的节点。初始化时,我们使用 `clear` 函数清空每个节点的邻接表。添加边可以通过将节点 `v` 添加到节点 `u` 的邻接表中来实现,删除边则可以通过遍历节点 `u` 的邻接表,找到节点 `v` 并将其删除来实现。
注意:这个例子中的邻接表是无向图的,如果是有向图,则需要根据实际情况来修改邻接表的存储方式。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)