二叉树的前序,中序,后序遍历的代码用python实现
时间: 2023-08-04 22:27:41 浏览: 85
好的,下面是使用Python实现的二叉树的前序、中序、后序遍历的代码:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
class BinaryTree:
def __init__(self):
self.root = None
def insert(self, val):
new_node = TreeNode(val)
if self.root is None:
self.root = new_node
else:
current = self.root
while True:
if val < current.val:
if current.left is None:
current.left = new_node
break
else:
current = current.left
else:
if current.right is None:
current.right = new_node
break
else:
current = current.right
def preorder_traversal(self, node):
if node is not None:
print(node.val, end=' ')
self.preorder_traversal(node.left)
self.preorder_traversal(node.right)
def inorder_traversal(self, node):
if node is not None:
self.inorder_traversal(node.left)
print(node.val, end=' ')
self.inorder_traversal(node.right)
def postorder_traversal(self, node):
if node is not None:
self.postorder_traversal(node.left)
self.postorder_traversal(node.right)
print(node.val, end=' ')
```
这个二叉树类与之前的例子相同,但是只包含了前序、中序和后序遍历方法。在这些方法中,我们都需要遍历二叉树中的所有节点。如果节点不为None,则按照特定的顺序遍历左子树、右子树和根节点。
在前序遍历中,我们首先访问根节点,然后遍历左子树和右子树。在中序遍历中,我们首先遍历左子树,然后访问根节点,最后遍历右子树。在后序遍历中,我们首先遍历左子树和右子树,最后访问根节点。
阅读全文