遍历二叉树完整代码
时间: 2023-07-02 16:05:12 浏览: 58
以下是遍历二叉树的完整代码,包括前序遍历、中序遍历和后序遍历:
```python
class Node:
def __init__(self, val=None):
self.val = val
self.left = None
self.right = None
class BinaryTree:
def __init__(self, root=None):
self.root = Node(root)
def preorder_traversal(self, node):
if node is None:
return []
return [node.val] + self.preorder_traversal(node.left) + self.preorder_traversal(node.right)
def inorder_traversal(self, node):
if node is None:
return []
return self.inorder_traversal(node.left) + [node.val] + self.inorder_traversal(node.right)
def postorder_traversal(self, node):
if node is None:
return []
return self.postorder_traversal(node.left) + self.postorder_traversal(node.right) + [node.val]
# Example usage:
# tree = BinaryTree(1)
# tree.root.left = Node(2)
# tree.root.right = Node(3)
# tree.root.left.left = Node(4)
# tree.root.left.right = Node(5)
# print(tree.preorder_traversal(tree.root))
# print(tree.inorder_traversal(tree.root))
# print(tree.postorder_traversal(tree.root))
```
其中,`Node` 类代表二叉树的节点,`BinaryTree` 类代表二叉树。在 `BinaryTree` 类中,`preorder_traversal` 方法实现前序遍历,`inorder_traversal` 方法实现中序遍历,`postorder_traversal` 方法实现后序遍历。每个方法都接受一个节点作为输入,并返回遍历结果的列表。在主程序中,可以通过创建 `BinaryTree` 对象并设置根节点及其子节点来构造二叉树,并调用相应的遍历方法来获取遍历结果。