建立一个无向图 用邻接表
时间: 2023-11-27 11:27:28 浏览: 82
邻接表实现无向图的建立与遍历,最小生成树以及最短路径
3星 · 编辑精心推荐
好的,我可以为您演示如何建立一个无向图并用邻接表来表示它。
假设我们要建立以下这个无向图:
```
1 -- 2
| |
4 -- 3
```
我们可以用一个大小为 4 的邻接表数组来表示这个图。数组中的每个元素表示一个顶点,数组中的每个元素都是一个链表,链表中存储了与该顶点相邻的所有顶点。
具体来说,我们可以用以下代码来实现这个邻接表:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n = 4; // 图中的顶点数
vector<int> adj[n]; // 邻接表数组
// 添加边
adj[0].push_back(1);
adj[0].push_back(4);
adj[1].push_back(0);
adj[1].push_back(2);
adj[2].push_back(1);
adj[2].push_back(3);
adj[3].push_back(2);
adj[3].push_back(4);
adj[4].push_back(0);
adj[4].push_back(3);
// 输出邻接表
for (int i = 0; i < n; i++) {
cout << "顶点 " << i << " 的邻居:";
for (int j = 0; j < adj[i].size(); j++) {
cout << adj[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
输出结果为:
```
顶点 0 的邻居:1 4
顶点 1 的邻居:0 2
顶点 2 的邻居:1 3
顶点 3 的邻居:2 4
顶点 4 的邻居:0 3
```
以上就是用邻接表来表示无向图的方法。希望能对您有所帮助!
阅读全文