📅  最后修改于: 2023-12-03 14:58:02.875000             🧑  作者: Mango
深度优先搜索(Depth-First Search,DFS)是一种常用的图遍历算法,常用于计算无向图或有向图中两个顶点之间的距离或路径。在计算无环图中两个顶点之间的节点数时,DFS也是一种有效的方法。
def dfs(graph, start, end, visited=None):
if visited is None:
visited = set()
visited.add(start)
count = 1
if start == end:
return count
for neighbor in graph[start]:
if neighbor not in visited:
count += dfs(graph, neighbor, end, visited)
return count
# 示例图的邻接表表示
graph = {
'A': ['B', 'C'],
'B': ['A', 'C', 'D'],
'C': ['A', 'B', 'D'],
'D': ['B', 'C']
}
start_node = 'A'
end_node = 'D'
count = dfs(graph, start_node, end_node)
print("节点数:", count)
使用给定的示例图进行测试,图的邻接表表示如下:
A: B, C
B: A, C, D
C: A, B, D
D: B, C
计算顶点A到顶点D之间的节点数,代码返回结果为4。
以上是通过DFS方法计算无环图中两个顶点之间的节点数的介绍和示例代码。希望对您有所帮助!