用邻接矩阵表示法创建有向图完整代码
时间: 2023-09-04 16:13:07 浏览: 133
下面是使用邻接矩阵表示法创建有向图的完整代码:
```python
class Graph:
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):
if src >= self.num_vertices or dest >= self.num_vertices or src < 0 or dest < 0:
raise ValueError("Invalid vertex index")
self.adj_matrix[src][dest] = 1
def remove_edge(self, src, dest):
if src >= self.num_vertices or dest >= self.num_vertices or src < 0 or dest < 0:
raise ValueError("Invalid vertex index")
self.adj_matrix[src][dest] = 0
def check_edge(self, src, dest):
if src >= self.num_vertices or dest >= self.num_vertices or src < 0 or dest < 0:
raise ValueError("Invalid vertex index")
return self.adj_matrix[src][dest] == 1
def __str__(self):
return '\n'.join([' '.join([str(cell) for cell in row]) for row in self.adj_matrix])
```
在上面的代码中,我们定义了一个 `Graph` 类,它包含了一个构造函数,用于初始化邻接矩阵的大小,以及添加、删除边和检查边是否存在的方法。最后,我们还定义了一个 `__str__` 方法,用于将邻接矩阵转化为一个字符串并进行输出。
下面是一个使用该类创建有向图的例子:
```python
g = Graph(4)
g.add_edge(0, 1)
g.add_edge(0, 3)
g.add_edge(1, 2)
g.add_edge(2, 3)
print(g)
```
该代码将创建一个有 4 个顶点的有向图,并添加了一些边。最后,我们将输出邻接矩阵的字符串表示形式。
输出结果为:
```
0 1 0 1
0 0 1 0
0 0 0 1
0 0 0 0
```
阅读全文