python 有向带权图,第一行输入n个点m条边,第二行输入所有顶点,后面输入起点,终点,权的数。输出入度、出度、和它的权的数
时间: 2024-02-25 15:56:40 浏览: 54
以下是一个 Python 实现,可以实现有向带权图的入度、出度、和权数的计算:
```
n, m = map(int, input().split()) # 输入点数和边数
vertices = input().split() # 输入所有顶点
# 初始化邻接矩阵
graph = [[0] * n for _ in range(n)]
# 构建邻接矩阵
for i in range(m):
start, end, weight = input().split() # 输入起点、终点、权值
start_idx, end_idx = vertices.index(start), vertices.index(end) # 获取起点和终点在顶点列表中的下标
graph[start_idx][end_idx] = int(weight) # 在邻接矩阵中设置边的权值
# 计算每个顶点的入度、出度和权重
for i in range(n):
in_degree = sum(graph[j][i] for j in range(n)) # 计算入度
out_degree = sum(graph[i][j] for j in range(n)) # 计算出度
weight = sum(graph[i][j] for j in range(n)) # 计算权重
print(vertices[i], "入度:", in_degree, "出度:", out_degree, "权值:", weight)
```
这个程序先输入点数和边数,然后输入所有顶点的名称,接着输入每条边的起点、终点和权值,最后计算每个顶点的入度、出度和权重,并输出结果。
阅读全文