邻接表是一种常用的数据结构,用于表示图的连接关系。在无向图中,每个顶点都与其相邻的顶点建立连接。下面是利用邻接表实现无向图的C++代码示例:
#include <iostream>
#include <vector>
using namespace std;
// 无向图的邻接表表示
class Graph {
private:
int numVertices; // 图中顶点的数量
vector<vector<int>> adjList; // 邻接表
public:
// 构造函数
Graph(int vertices) {
numVertices = vertices;
adjList.resize(numVertices);
}
// 添加边
void addEdge(int src, int dest) {
adjList[src].push_back(dest);
adjList[dest].push_back(src);
}
// 打印图的邻接表
void printGraph() {
for (int i = 0; i < numVertices; i++) {
cout << "顶点 " << i << " 的邻接顶点有:";
for (int j = 0; j < adjList[i].size(); j++) {
cout << adjList[i][j] << " ";
}
cout << endl;
}
}
};
int main() {
// 创建一个包含5个顶点的无向图
Graph graph(5);
// 添加边
graph.addEdge(0, 1);
graph.addEdge(0, 4);
graph.addEdge(1, 2);
graph.addEdge(1, 3);
graph.addEdge(1, 4);
graph.addEdge(2, 3);
graph.addEdge(3, 4);
// 打印图的邻接表
graph.printGraph();
return 0;
}
这段代码实现了一个无向图的邻接表表示,并提供了添加边和打印邻接表的功能。通过创建一个Graph对象,可以添加边来构建图,并使用printGraph()函数打印图的邻接表。
无向图的邻接表表示优势在于:
邻接表适用于以下场景:
腾讯云提供了云计算相关的产品和服务,其中与图计算相关的产品是腾讯云图数据库 Neptune,它是一种高性能、高可靠、全托管的图数据库服务。您可以通过以下链接了解更多关于腾讯云 Neptune 的信息:
希望这个答案能够满足您的需求。如果您还有其他问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云