下面是一个逐层递归列出树或有向图中节点邻居的示例代码:
class Node:
def __init__(self, value):
self.value = value
self.neighbors = []
def recursive_bfs(nodes):
if not nodes:
return
next_level = []
for node in nodes:
print(node.value) # 打印当前层级节点的值
for neighbor in node.neighbors:
next_level.append(neighbor)
recursive_bfs(next_level)
# 创建一个有向图
node1 = Node(1)
node2 = Node(2)
node3 = Node(3)
node4 = Node(4)
node5 = Node(5)
node6 = Node(6)
node1.neighbors = [node2, node3]
node2.neighbors = [node4, node5]
node3.neighbors = [node6]
# 从根节点开始递归列出节点邻居
recursive_bfs([node1])
输出结果:
1
2
3
4
5
6
这个示例中,我们首先创建了一个有向图,然后使用递归函数recursive_bfs
来逐层列出节点邻居。我们从根节点开始,将其邻居添加到下一层级的列表中,然后递归调用recursive_bfs
函数,传入下一层级的节点列表。这样就能逐层遍历并打印出节点的邻居。