二叉搜索树python打印
时间: 2023-12-05 12:39:57 浏览: 88
Python实现二叉搜索树
5星 · 资源好评率100%
以下是Python实现二叉搜索树的打印方法:
```python
class Node:
def __init__(self, val=None):
self.left = None
self.right = None
self.val = val
def print_tree(root):
"""
以树形结构打印二叉搜索树
"""
if not root:
return
queue = [root]
res = []
while queue:
cur_level = []
next_level = []
for node in queue:
cur_level.append(str(node.val))
if node.left:
next_level.append(node.left)
if node.right:
next_level.append(node.right)
res.append(cur_level)
queue = next_level
max_len = max([len(' '.join(level)) for level in res])
for i in range(len(res)):
level = res[i]
level_str = ' '.join(level)
level_str += ' ' * (max_len - len(level_str))
res[i] = level_str
for level_str in res:
print(level_str)
```
以上代码中,我们定义了一个Node类来表示二叉搜索树的节点,其中包含左右子节点和节点值。print_tree()函数接收一个根节点作为参数,使用队列来进行层次遍历,将每一层的节点值存储在一个列表中,最后将所有层的列表拼接成一个字符串列表,再将每个字符串的长度调整为最大长度,最后输出即可。
阅读全文