给定先序序列,按照该序列创建对应的二叉树,并输出其先序、中序和后序遍历序列代码
时间: 2023-12-08 14:54:17 浏览: 119
以下是给定先序序列创建二叉树并输出遍历序列的代码:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def build_tree(preorder):
if not preorder:
return None
root_val = preorder.pop(0)
root = TreeNode(root_val)
index = -1
for i, val in enumerate(preorder):
if val > root_val:
break
index = i
root.left = build_tree(preorder[:index+1])
root.right = build_tree(preorder[index+1:])
return root
def preorder_traversal(root):
if not root:
return []
return [root.val] + preorder_traversal(root.left) + preorder_traversal(root.right)
def inorder_traversal(root):
if not root:
return []
return inorder_traversal(root.left) + [root.val] + inorder_traversal(root.right)
def postorder_traversal(root):
if not root:
return []
return postorder_traversal(root.left) + postorder_traversal(root.right) + [root.val]
preorder = [5, 2, 1, 3, 7, 6, 8]
root = build_tree(preorder)
print(preorder_traversal(root)) # [5, 2, 1, 3, 7, 6, 8]
print(inorder_traversal(root)) # [1, 2, 3, 5, 6, 7, 8]
print(postorder_traversal(root)) # [1, 3, 2, 6, 8, 7, 5]
```
其中 `build_tree` 函数根据先序序列创建二叉树,它通过递归地创建左子树和右子树来实现。 `preorder_traversal`、`inorder_traversal` 和 `postorder_traversal` 函数分别输出先序、中序和后序遍历序列,它们也是通过递归实现的。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)