创建有向图的邻接数组存储结构代码
时间: 2024-10-29 09:18:59 浏览: 5
基于邻接数组(邻接矩阵)无向图实现代码(C/C++)_下载无需积分
创建有向图的邻接数组存储结构通常涉及两个步骤:定义数据结构表示图和邻接矩阵,然后初始化和操作它。
首先,我们可以使用一个二维数组来表示邻接矩阵,其中每个元素 `adj[i][j]` 表示顶点 `i` 是否有一条边指向顶点 `j`。如果存在边,则该值为非零;反之则为0。对于无向图,需要将邻接矩阵对称。
```python
class DirectedGraph:
def __init__(self, num_vertices):
self.num_vertices = num_vertices
# 初始化一个空的邻接列表
self.adj_matrix = [[0] * num_vertices for _ in range(num_vertices)]
# 添加边的方法
def add_edge(self, src, dest):
self.adj_matrix[src][dest] = 1
# 获取源节点到目标节点是否有边的方法
def has_edge(self, src, dest):
return self.adj_matrix[src][dest] != 0
# 使用示例
g = DirectedGraph(5)
g.add_edge(0, 1) # 从顶点0到1添加一条边
g.add_edge(1, 2) # 从顶点1到2添加一条边
print(g.has_edge(0, 2)) # 输出:False (因为0到2没有直接边)
```
阅读全文