随机生成数值,构造一个二叉树。分别输出先根序、中根序和后根序遍历的结果。使用python语言递归方法
时间: 2023-02-06 13:05:32 浏览: 55
在 Python 中,可以使用递归的方式来构建二叉树并遍历它。
首先,我们需要定义一个节点类,用于表示二叉树中的每个节点:
```
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
```
然后,我们可以使用随机数生成器来生成一组数字,并使用这些数字来构建二叉树:
```
import random
# 生成一组随机数
values = [random.randint(1, 100) for _ in range(10)]
print(values)
# 使用这组数字构建二叉树
root = Node(values[0])
for value in values[1:]:
curr = root
while True:
if value < curr.value:
if curr.left is None:
curr.left = Node(value)
break
else:
curr = curr.left
else:
if curr.right is None:
curr.right = Node(value)
break
else:
curr = curr.right
```
接下来,我们可以使用递归的方式来实现三种遍历方式:
```
def preorder(node):
if node is not None:
print(node.value, end=' ')
preorder(node.left)
preorder(node.right)
def inorder(node):
if node is not None:
inorder(node.left)
print(node.value, end=' ')
inorder(node.right)
def postorder(node):
if node is not None:
postorder(node.left)
postorder(node.right)
print(node.value, end=' ')
```
最后,我们可以调用这三个函数来遍历二叉树:
```
print("先根序遍历:", end=' ')
preorder(root)
print("\n中根序遍历:", end=' ')
inorder(root)
print("\n后根序遍历:", end=' ')
postorder(root)
```