实验6:用邻接矩阵表示法创建有向图
时间: 2023-09-04 12:17:42 浏览: 148
好的,让我们开始创建有向图。
首先,我们需要定义图的节点(顶点)和边。假设我们想要创建一个有6个节点和7个边的有向图。我们可以用以下代码来表示:
```python
# 定义节点
nodes = ['A', 'B', 'C', 'D', 'E', 'F']
# 定义边
edges = [
(0, 1), # A -> B
(1, 2), # B -> C
(2, 3), # C -> D
(3, 4), # D -> E
(4, 1), # E -> B
(4, 5), # E -> F
(5, 0) # F -> A
]
```
这里,我们用0到5的整数代表节点,例如0代表节点A,1代表节点B,以此类推。每个边由两个节点组成,例如(0, 1)代表从节点A到节点B的一条边。
接下来,我们将这些节点和边用邻接矩阵表示法表示出来。我们可以用一个二维数组来表示邻接矩阵,其中每个元素代表两个节点之间是否有一条边。如果有边,则为1,否则为0。
```python
# 初始化邻接矩阵
adj_matrix = [[0] * len(nodes) for _ in range(len(nodes))]
# 将边添加到邻接矩阵
for edge in edges:
adj_matrix[edge[0]][edge[1]] = 1
```
这里,我们首先将邻接矩阵初始化为全0的矩阵。然后,我们遍历边列表,将每条边添加到邻接矩阵中。
最后,我们可以打印出邻接矩阵来检查是否正确创建了有向图。
```python
# 打印邻接矩阵
for row in adj_matrix:
print(row)
```
输出结果为:
```
[0, 1, 0, 0, 0, 0]
[0, 0, 1, 0, 0, 0]
[0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0]
[0, 1, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0]
```
这个邻接矩阵表示了我们创建的有向图。例如,第一行表示从节点A出发有一条边到节点B,第五行表示从节点E出发有一条边到节点B和一条边到节点F。
阅读全文