创建一个二叉树,对其实现先序、中序、后序遍历并显示三种遍历结果 二叉树以lson-rson链接方式存储,以菜单方式设计并完成功能任务:建立并存储树、输出前序遍历结果、输出中序遍历结果、输出后序遍历结果,其中三种遍历均可采用递归方式实现。
时间: 2024-05-02 15:22:42 浏览: 162
对所建立的二叉树分别进行先序、中序和后序遍历,并输出结果。
4星 · 用户满意度95%
非常感谢您对 ChitGPT 的使用,我会尽力回答您的问题。下面是关于创建二叉树并实现先序、中序、后序遍历的代码示例:
```python
class Node:
def __init__(self, data):
self.data = data
self.lson = None
self.rson = None
class BinaryTree:
def __init__(self):
self.root = None
# 插入节点
def insert(self, data):
node = Node(data)
if self.root is None:
self.root = node
else:
current = self.root
while True:
if data < current.data:
if current.lson is None:
current.lson = node
break
else:
current = current.lson
else:
if current.rson is None:
current.rson = node
break
else:
current = current.rson
# 先序遍历
def preorder(self, node):
if node is not None:
print(node.data, end=" ")
self.preorder(node.lson)
self.preorder(node.rson)
# 中序遍历
def inorder(self, node):
if node is not None:
self.inorder(node.lson)
print(node.data, end=" ")
self.inorder(node.rson)
# 后序遍历
def postorder(self, node):
if node is not None:
self.postorder(node.lson)
self.postorder(node.rson)
print(node.data, end=" ")
if __name__ == '__main__':
tree = BinaryTree()
data = input("请输入节点数据(输入exit退出):")
while data != "exit":
tree.insert(int(data))
data = input("请输入节点数据(输入exit退出):")
print("先序遍历:")
tree.preorder(tree.root)
print("\n中序遍历:")
tree.inorder(tree.root)
print("\n后序遍历:")
tree.postorder(tree.root)
```
运行以上代码,输入节点数据后即可输出先序、中序、后序遍历的结果。
希望我的回答能对您有所帮助!
阅读全文