解释这段代码class Graph: def __init__(self, num_vertices): self.num_vertices = num_vertices self.adj_list = [[] for _ in range(num_vertices)] def add_edge(self, u, v): self.adj_list[u].append(v) self.adj_list[v].append(u)
时间: 2024-03-10 13:50:50 浏览: 85
opengl.zip_delphi OPENGL_delphi draw graph_objects
这段代码定义了一个名为Graph的类,它表示一个无向图。构造函数__init__接收参数num_vertices,表示图中节点的数量,然后初始化一个大小为num_vertices的空邻接表adj_list。邻接表是一个列表,其中包含了每个节点的邻居节点。每个邻居列表初始化为空列表[]。
add_edge方法用于向图中添加一条边。它接受两个参数u和v,表示两个节点之间存在一条边。它将v添加到u的邻居列表中,并将u添加到v的邻居列表中,因为这是一个无向图,边是双向的。
例如,如果我们要创建一个包含4个节点的无向图,可以这样做:
```
g = Graph(4)
g.add_edge(0, 1)
g.add_edge(1, 2)
g.add_edge(2, 3)
g.add_edge(3, 0)
```
这将创建一个环形图,其中每个节点都与相邻的两个节点相连。
阅读全文