有向图的邻接矩阵python完整代码
时间: 2023-09-04 21:09:23 浏览: 97
以下是一个简单的 Python 代码,用于生成有向图的邻接矩阵:
```python
# 定义有向图的邻接矩阵
def adjacency_matrix(num_nodes, edges):
matrix = [[0 for _ in range(num_nodes)] for _ in range(num_nodes)]
for edge in edges:
matrix[edge[0]][edge[1]] = 1
return matrix
# 示例
num_nodes = 4
edges = [(0, 1), (1, 2), (2, 0), (2, 3)]
matrix = adjacency_matrix(num_nodes, edges)
print(matrix)
```
这里,我们首先定义了一个函数 `adjacency_matrix`,该函数接受节点数量和边列表参数,并返回邻接矩阵。在函数中,我们首先初始化一个全零矩阵,然后遍历边列表,并在矩阵中标记边的起始和终止节点。最后,我们返回该矩阵。
在示例中,我们使用了一个有4个节点和4条边的简单图。运行上述代码将输出以下矩阵:
```
[[0, 1, 0, 0],
[0, 0, 1, 0],
[1, 0, 0, 1],
[0, 0, 0, 0]]
```
这个矩阵表示了以上图形的邻接矩阵,其中每一行和每一列都代表一个节点,并且如果某个节点之间有一条边,则矩阵中对应的值为1,否则为0。
相关问题
有向图的邻接矩阵python代码
下面是一个简单的 Python 代码片段,用于创建有向图的邻接矩阵:
```python
# 首先,我们需要定义一个图的大小
n = 5
# 接下来,我们创建一个全零矩阵,它将作为我们的邻接矩阵
adj_matrix = [[0 for i in range(n)] for j in range(n)]
# 然后,我们可以向矩阵中添加边
# 在这个例子中,我们添加了三条边,从第一个节点到第二个节点、第二个节点到第三个节点、以及第三个节点到第一个节点
adj_matrix[0][1] = 1
adj_matrix[1][2] = 1
adj_matrix[2][0] = 1
# 最后,我们可以打印邻接矩阵
for row in adj_matrix:
print(row)
```
这将输出以下邻接矩阵:
```
[0, 1, 0, 0, 0]
[0, 0, 1, 0, 0]
[1, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
```
在这个例子中,我们创建了一个由 5 个节点组成的有向图,并添加了三条边。注意,每个节点都被表示为矩阵中的一行和一列,而边则表示为将相应行和列中的元素设置为 1。如果两个节点之间没有边,则相应的矩阵元素为 0。
有向图的邻接矩阵python
有向图的邻接矩阵可以用二维数组来表示,其中每个元素表示对应节点之间的边。如果节点 i 和节点 j 之间有一条边,则邻接矩阵中第 i 行第 j 列的元素为 1,否则为 0。下面是一个简单的 Python 实现:
```python
n = 5 # 有向图的节点数
adj_matrix = [[0] * n for _ in range(n)] # 初始化邻接矩阵
# 添加边
adj_matrix[0][1] = 1
adj_matrix[1][2] = 1
adj_matrix[2][0] = 1
adj_matrix[2][3] = 1
adj_matrix[3][4] = 1
# 打印邻接矩阵
for row in adj_matrix:
print(row)
```
输出结果为:
```
[0, 1, 0, 0, 0]
[0, 0, 1, 0, 0]
[1, 0, 0, 1, 0]
[0, 0, 0, 0, 1]
[0, 0, 0, 0, 0]
```
其中,第 i 行第 j 列的元素为 1 表示从节点 i 到节点 j 有一条有向边。
阅读全文