python广度优先遍历
时间: 2023-10-19 08:36:06 浏览: 86
图的广度优先遍历
广度优先遍历是一种按层次遍历树或图的算法。在Python中,可以通过循环实现广度优先遍历。首先创建一个队列,将根节点放入队列中。然后,从队列中依次取出节点,并按照从左至右的顺序打印节点的值。接着,将当前节点的左右子节点(如果存在)放入队列中,直至队列为空。下面是广度优先遍历的Python实现代码:
```python
def breadth_order(root):
queue = [root]
if root is None:
print("No node inside the tree.")
return
while queue:
cur_node = queue.pop(0)
print(cur_node.elem, end=" ")
if cur_node.lchild is not None:
queue.append(cur_node.lchild)
if cur_node.rchild is not None:
queue.append(cur_node.rchild)
```
这段代码首先创建了一个队列queue,并将根节点root放入队列中。然后,通过循环遍历队列,每次弹出队列的第一个节点cur_node,并打印该节点的值。如果当前节点cur_node有左子节点,则将左子节点放入队列中;如果当前节点cur_node有右子节点,则将右子节点放入队列中。重复以上步骤,直到队列为空。这样就实现了广度优先遍历。
注意,上述代码中的root是二叉树的根节点,elem是节点的值,lchild和rchild分别表示左子节点和右子节点。这段代码适用于二叉树的广度优先遍历。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
阅读全文