数据结构二叉树的遍历程序
时间: 2024-12-12 21:15:07 浏览: 3
数据结构 二叉树遍历程序
5星 · 资源好评率100%
二叉树是一种常见的数据结构,其遍历方式主要有三种:前序遍历、中序遍历和后序遍历。以下是这三种遍历方式的介绍及其实现代码:
1. **前序遍历(Pre-order Traversal)**:先访问根节点,然后遍历左子树,最后遍历右子树。
2. **中序遍历(In-order Traversal)**:先遍历左子树,然后访问根节点,最后遍历右子树。
3. **后序遍历(Post-order Traversal)**:先遍历左子树,然后遍历右子树,最后访问根节点。
以下是这三种遍历方式的实现代码(使用Python语言):
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def preorder_traversal(root):
"""前序遍历"""
if root is None:
return []
return [root.val] + preorder_traversal(root.left) + preorder_traversal(root.right)
def inorder_traversal(root):
"""中序遍历"""
if root is None:
return []
return inorder_traversal(root.left) + [root.val] + inorder_traversal(root.right)
def postorder_traversal(root):
"""后序遍历"""
if root is None:
return []
return postorder_traversal(root.left) + postorder_traversal(root.right) + [root.val]
# 示例用法
if __name__ == "__main__":
# 构建二叉树
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
print("前序遍历结果:", preorder_traversal(root))
print("中序遍历结果:", inorder_traversal(root))
print("后序遍历结果:", postorder_traversal(root))
```
在这个示例中,我们定义了一个二叉树的节点类 `TreeNode`,并实现了三种遍历方法:`preorder_traversal`(前序遍历)、`inorder_traversal`(中序遍历)和 `postorder_traversal`(后序遍历)。最后,我们构建了一个简单的二叉树并输出了三种遍历的结果。
阅读全文