基于队列的非二叉树的广度优先搜索(BFS)或层次顺序遍历是一种遍历树结构的方法,它从根节点开始,逐层访问每个节点的子节点。这种方法使用队列数据结构来保持跟踪待访问的节点。
以下是一个基于队列的非二叉树层次顺序遍历的示例代码:
from collections import deque
class TreeNode:
def __init__(self, value):
self.value = value
self.children = []
def bfs_traversal(root):
if not root:
return []
queue = deque([root])
result = []
while queue:
current_node = queue.popleft()
result.append(current_node.value)
for child in current_node.children:
queue.append(child)
return result
# 示例树结构
root = TreeNode('A')
node_b = TreeNode('B')
node_c = TreeNode('C')
node_d = TreeNode('D')
node_e = TreeNode('E')
node_f = TreeNode('F')
root.children = [node_b, node_c]
node_b.children = [node_d, node_e]
node_c.children = [node_f]
print(bfs_traversal(root)) # 输出: ['A', 'B', 'C', 'D', 'E', 'F']
通过上述方法和代码示例,可以有效地进行基于队列的非二叉树的层次顺序遍历,并解决常见的遍历问题。
领取专属 10元无门槛券
手把手带您无忧上云