数据结构先序中序后序代码
时间: 2023-06-28 16:14:45 浏览: 110
下面是先序、中序和后序遍历的代码实现,以二叉树为例:
```python
# 定义二叉树节点
class Node:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
# 先序遍历
def preOrder(root):
if root:
print(root.val, end=" ")
preOrder(root.left)
preOrder(root.right)
# 中序遍历
def inOrder(root):
if root:
inOrder(root.left)
print(root.val, end=" ")
inOrder(root.right)
# 后序遍历
def postOrder(root):
if root:
postOrder(root.left)
postOrder(root.right)
print(root.val, end=" ")
```
其中,先序遍历的顺序是先输出根节点,然后递归输出左子树,最后递归输出右子树;中序遍历的顺序是先递归输出左子树,然后输出根节点,最后递归输出右子树;后序遍历的顺序是先递归输出左子树,然后递归输出右子树,最后输出根节点。
相关问题
数据结构二叉树先序中序后序遍历代码
以下是二叉树先序、中序、后序遍历的代码实现:
```python
# 先序遍历
def preorder_traversal(root):
if root:
print(root.val)
preorder_traversal(root.left)
preorder_traversal(root.right)
# 中序遍历
def inorder_traversal(root):
if root:
inorder_traversal(root.left)
print(root.val)
inorder_traversal(root.right)
# 后序遍历
def postorder_traversal(root):
if root:
postorder_traversal(root.left)
postorder_traversal(root.right)
print(root.val)
```
其中,`root`表示二叉树的根节点,`val`表示节点的值,`left`和`right`分别表示左子树和右子树。
先序遍历的顺序是:根节点 -> 左子树 -> 右子树。
中序遍历的顺序是:左子树 -> 根节点 -> 右子树。
后序遍历的顺序是:左子树 -> 右子树 -> 根节点。
数据结构先序中序后序完整运行代码
下面是一个完整的二叉树的先序、中序和后序遍历代码:
```python
# 定义二叉树节点
class Node:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
# 先序遍历
def preOrder(root):
if root:
print(root.val, end=" ")
preOrder(root.left)
preOrder(root.right)
# 中序遍历
def inOrder(root):
if root:
inOrder(root.left)
print(root.val, end=" ")
inOrder(root.right)
# 后序遍历
def postOrder(root):
if root:
postOrder(root.left)
postOrder(root.right)
print(root.val, end=" ")
# 构建二叉树
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
root.right.left = Node(6)
root.right.right = Node(7)
# 输出各种遍历结果
print("先序遍历:")
preOrder(root)
print("\n中序遍历:")
inOrder(root)
print("\n后序遍历:")
postOrder(root)
```
输出结果如下:
```
先序遍历:
1 2 4 5 3 6 7
中序遍历:
4 2 5 1 6 3 7
后序遍历:
4 5 2 6 7 3 1
```
可以看到,先序遍历的结果为1 2 4 5 3 6 7,中序遍历的结果为4 2 5 1 6 3 7,后序遍历的结果为4 5 2 6 7 3 1。
阅读全文