用 c++ 写 以邻接表的形式创建一个无向图 的代码
时间: 2024-02-05 12:11:03 浏览: 60
基于邻接数组(邻接矩阵)无向图实现代码(C/C++)_下载无需积分
以下是用 C++ 实现以邻接表的形式创建一个无向图的代码:
```cpp
#include <iostream>
#include <list>
using namespace std;
class Graph {
private:
int numVertices;
list<int>* adjLists;
public:
Graph(int vertices) {
numVertices = vertices;
adjLists = new list<int>[vertices];
}
void addEdge(int src, int dest) {
adjLists[src].push_back(dest);
adjLists[dest].push_back(src);
}
void printGraph() {
for (int i = 0; i < numVertices; i++) {
cout << "Vertex " << i << " :";
for (auto v : adjLists[i]) {
cout << " -> " << v;
}
cout << endl;
}
}
};
int main() {
Graph g(5);
g.addEdge(0, 1);
g.addEdge(0, 4);
g.addEdge(1, 2);
g.addEdge(1, 3);
g.addEdge(1, 4);
g.addEdge(2, 3);
g.addEdge(3, 4);
g.printGraph();
return 0;
}
```
在这个例子中,我们创建了一个 `Graph` 类,其中包括一个邻接列表和两个公共方法: `addEdge` 和 `printGraph`。`addEdge` 方法用于将边添加到图中,`printGraph` 方法用于打印整个图。
在 `main` 函数中,我们首先创建了一个 `Graph` 对象,然后使用 `addEdge` 方法添加了一些边。最后,我们使用 `printGraph` 方法打印整个图。
阅读全文