如何计算有向图的出入度
时间: 2024-05-16 07:17:30 浏览: 85
对于一个有向图中的每个节点,它的入度表示有多少条边指向它,出度表示有多少条边从它出发。因此,我们可以按照以下方法计算有向图的出入度:
1. 创建两个大小为n的数组,其中n是有向图中节点的数量,一个用于记录每个节点的入度,另一个用于记录每个节点的出度。
2. 遍历有向图中的每个节点,对于每个节点,遍历从该节点出发的所有边,并将相应的出度加1,同时遍历指向该节点的所有边,并将相应的入度加1。
3. 最终,数组中每个节点的入度和出度就是该节点的出入度。
示例代码如下:
```python
# 计算有向图的出入度
def compute_degree(n, edges):
in_degree = [0] * n # 入度数组
out_degree = [0] * n # 出度数组
for edge in edges:
out_degree[edge[0]] += 1
in_degree[edge[1]] += 1
return in_degree, out_degree
# 示例
n = 5 # 节点数量
edges = [(0, 1), (1, 2), (2, 3), (3, 4), (4, 0)] # 边列表
in_degree, out_degree = compute_degree(n, edges)
print("节点的入度:", in_degree)
print("节点的出度:", out_degree)
```
输出结果为:
```
节点的入度: [1, 1, 1, 1, 1]
节点的出度: [1, 1, 1, 1, 1]
```
这个示例中,有向图是一个环,每个节点的入度和出度都为1。
阅读全文