📅  最后修改于: 2023-12-03 15:07:59.618000             🧑  作者: Mango
在图论中,顶点的度数是指与该顶点直接相连的边的数量。某些情况下需要统计特定顶点的度数,下面介绍几种实现方式。
在邻接矩阵中,第 i 行第 j 列的元素表示编号为 i 的顶点与编号为 j 的顶点是否相连(0 表示不相连,1 表示相连)。因此,统计编号为 i 的顶点的度数,只需要遍历邻接矩阵中第 i 行的元素即可。
下面是 Python 代码实现。
def degree(adj_matrix, vertex):
degree = 0
for i in range(len(adj_matrix[vertex])):
degree += adj_matrix[vertex][i]
return degree
# 调用示例
adj_matrix = [[0, 1, 1], [1, 0, 1], [1, 1, 0]]
vertex = 1
print(degree(adj_matrix, vertex)) # 输出 2
在邻接表中,每个顶点对应一个链表,链表中存储该顶点直接相连的其他顶点。因此,统计编号为 i 的顶点的度数,只需要统计该链表的长度即可。
下面是 Python 代码实现。
def degree(adj_list, vertex):
return len(adj_list[vertex])
# 调用示例
adj_list = {
1: [2, 3],
2: [1, 3],
3: [1, 2]
}
vertex = 1
print(degree(adj_list, vertex)) # 输出 2
对于一个无向图,每个顶点的度数等于与该顶点相连的边的数量。因此,可以遍历所有边,统计与特定顶点相连的边的数量。
下面是 Python 代码实现。
def degree(edges, vertex):
degree = 0
for edge in edges:
if vertex in edge:
degree += 1
return degree
# 调用示例
edges = [(1, 2), (1, 3), (2, 3)]
vertex = 1
print(degree(edges, vertex)) # 输出 2
以上就是几种在图中查找特定顶点的度数的实现方式。