创建二叉树和实现二叉树的三种遍历a.根据提示输入字符型数据创建二叉树,输入值为所有字符型数据b.输出为遍历后的每个结点的值的顺序c.创建二叉树并能实现二叉树的先序、中序、后序遍历
时间: 2023-10-24 21:08:43 浏览: 68
好的,以下是创建二叉树和实现三种遍历的代码:
```python
class Node:
def __init__(self, val):
self.left = None
self.right = None
self.val = val
def create_tree():
val = input("请输入节点的值(回车表示结束):")
if val == "":
return None
node = Node(val)
node.left = create_tree()
node.right = create_tree()
return node
def inorder_traversal(root):
if root:
inorder_traversal(root.left)
print(root.val, end=' ')
inorder_traversal(root.right)
def preorder_traversal(root):
if root:
print(root.val, end=' ')
preorder_traversal(root.left)
preorder_traversal(root.right)
def postorder_traversal(root):
if root:
postorder_traversal(root.left)
postorder_traversal(root.right)
print(root.val, end=' ')
```
其中,`create_tree` 函数用于根据用户输入的字符型数据创建二叉树,`inorder_traversal`、`preorder_traversal` 和 `postorder_traversal` 分别实现了中序遍历、前序遍历和后序遍历。你可以按照以下步骤使用上述代码:
1. 调用 `create_tree` 函数创建二叉树;
2. 调用 `inorder_traversal`、`preorder_traversal` 和 `postorder_traversal` 函数,分别遍历二叉树并输出遍历结果。
例如,以下是一个创建二叉树并遍历的示例:
```python
root = create_tree()
print('Inorder Traversal:', end=' ')
inorder_traversal(root)
print('\nPreorder Traversal:', end=' ')
preorder_traversal(root)
print('\nPostorder Traversal:', end=' ')
postorder_traversal(root)
```
注意,使用这个代码的时候需要在输入每个节点的值之后回车,然后再输入下一个节点的值。如果需要结束输入,则直接回车即可。
另外,如果你想要在每个节点的值之间输入空格或逗号等分隔符,可以在 `create_tree` 函数中的 `val = input("请输入节点的值(回车表示结束):")` 这一行代码中修改提示信息和分隔符。
阅读全文