1)建立二叉树。 2)按先序、中序、后序方式遍历二叉树。 程序的基本要求:采用二叉链表存储结构表示二叉树;通过二叉树广义表输入所有结点建立二叉树;通过递归算法实现二叉树的遍历并输出结点数据信息。
时间: 2024-12-10 22:49:33 浏览: 18
建立二叉树,并输出二叉树的先序,中序和后序遍历序列,以及二叉树的叶子数
1)建立二叉树的过程通常涉及到节点的创建和连接。首先,你需要定义一个二叉树节点类,包含一个值域字段以及指向左孩子和右孩子的指针。程序大致步骤如下:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def build_binary_tree(input_list):
if not input_list:
return None
root_val = input_list[0]
root = TreeNode(root_val)
current_node = root
for value in input_list[1:]:
if value is not None:
if value < root_val:
if current_node.left is None:
current_node.left = TreeNode(value)
else:
build_binary_tree([value], current_node.left)
else:
if current_node.right is None:
current_node.right = TreeNode(value)
else:
build_binary_tree([value], current_node.right)
return root
```
2)二叉树的三种遍历方式分别是先序遍历(根-左-右)、中序遍历(左-根-右)和后序遍历(左-右-根)。递归函数实现如下:
```python
# 先序遍历
def preorder_traversal(node):
if node is not None:
print(node.val) # 输出当前节点
preorder_traversal(node.left)
preorder_traversal(node.right)
# 中序遍历
def inorder_traversal(node):
if node is not None:
inorder_traversal(node.left)
print(node.val) # 输出当前节点
inorder_traversal(node.right)
# 后序遍历
def postorder_traversal(node):
if node is not None:
postorder_traversal(node.left)
postorder_traversal(node.right)
print(node.val) # 输出当前节点
```
阅读全文