1、用递归的方法实现二叉树的操作 (1)以二叉链表表示二叉树,建立一棵二叉树(算法5.3); (2)输出二叉树的中序遍历结果(算法5.1); (3)输出二叉树的前序遍历结果; (4)输出二叉树的后序遍历结果; (5)
时间: 2024-05-06 11:17:36 浏览: 142
以下是用递归方法实现二叉树的操作的代码:
```python
# 定义二叉树节点
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
# 建立二叉树
def create_binary_tree():
data = input("请输入节点值:")
if data == "#":
return None
node = Node(data)
node.left = create_binary_tree()
node.right = create_binary_tree()
return node
# 中序遍历
def inorder_traversal(node):
if node is not None:
inorder_traversal(node.left)
print(node.data, end=" ")
inorder_traversal(node.right)
# 前序遍历
def preorder_traversal(node):
if node is not None:
print(node.data, end=" ")
preorder_traversal(node.left)
preorder_traversal(node.right)
# 后序遍历
def postorder_traversal(node):
if node is not None:
postorder_traversal(node.left)
postorder_traversal(node.right)
print(node.data, end=" ")
```
我们可以使用以下代码测试上述函数:
```python
root = create_binary_tree()
print("中序遍历结果:")
inorder_traversal(root)
print("\n前序遍历结果:")
preorder_traversal(root)
print("\n后序遍历结果:")
postorder_traversal(root)
```
以上代码可以让用户输入二叉树的节点值,以"#"表示空节点,最终输出中序遍历、前序遍历和后序遍历的结果。
阅读全文