数据结构邻接表创建无向图
时间: 2023-12-07 16:35:58 浏览: 191
邻接表是一种常见的图的表示方法,它通过链表的方式存储每个节点的邻居节点。在创建无向图的邻接表时,我们需要遍历每个节点,对于每个节点,我们需要创建一个链表来存储它的邻居节点。具体步骤如下:
1. 创建一个大小为n的链表数组,其中n为节点的数量。
2. 遍历每个节点,对于每个节点i,创建一个链表,用于存储它的邻居节点。
3. 对于每个节点i,遍历它的所有邻居节点j,将j加入到i的链表中。
4. 重复步骤3,直到遍历完所有节点。
下面是一个示例代码,用于创建一个无向图的邻接表:
```
// 定义节点结构体
struct Node {
int val;
Node* next;
Node(int v) : val(v), next(nullptr) {}
};
// 创建邻接表
vector<Node*> createGraph(vector<vector<int>>& edges, int n) {
vector<Node*> graph(n, nullptr);
for (auto& edge : edges) {
int u = edge[0], v = edge[1];
// 添加u的邻居节点v
Node* node = new Node(v);
node->next = graph[u];
graph[u] = node;
// 添加v的邻居节点u
node = new Node(u);
node->next = graph[v];
graph[v] = node;
}
return graph;
}
```
阅读全文