在C++中構建復雜圖結構可以使用多種方法,其中一種常用的方法是使用鄰接列表或鄰接矩陣來表示圖結構。以下是一個簡單的示例,展示如何在C++中構建一個有向圖的鄰接列表表示:
#include <iostream>
#include <vector>
using namespace std;
// 定義圖結構
class Graph {
private:
int V; // 頂點數
vector<vector<int>> adjList; // 鄰接列表
public:
Graph(int vertices) {
V = vertices;
adjList.resize(V);
}
// 添加邊
void addEdge(int src, int dest) {
adjList[src].push_back(dest);
}
// 打印圖結構
void printGraph() {
for (int i = 0; i < V; i++) {
cout << "頂點 " << i << " 的鄰居: ";
for (int neighbor : adjList[i]) {
cout << neighbor << " ";
}
cout << endl;
}
}
};
int main() {
Graph graph(4);
graph.addEdge(0, 1);
graph.addEdge(0, 2);
graph.addEdge(1, 2);
graph.addEdge(2, 3);
graph.printGraph();
return 0;
}
在這個示例中,我們首先定義了一個Graph類來表示圖結構,其中包含一個頂點數V和一個鄰接列表adjList。然后我們實現了addEdge方法來添加邊,printGraph方法來打印圖結構。
在main函數中,我們創建了一個有向圖,并添加了一些邊。最后調用printGraph方法來打印圖結構。
通過這種方式,我們可以很容易地構建復雜的圖結構,并對其進行操作。您也可以根據需要擴展這個示例,添加更多的方法來實現不同的圖算法。