python手动建树并(先中后)序遍历二叉树

    技术2025-11-19  23

    先序遍历、中序遍历、后序遍历简介

    先序遍历的次序是:如果二叉树不为空,则访问根节点,然后访问左子树,最后访问右子树;否则,程序退出。 中序遍历的次序是:如果二叉树不为空,,先访问左子树,然后访问根节点,最后访问右子树;否则,程序退出。 后序遍历的次序是:如果二叉树不为空,先访问左子树,然后访问右子树,最后访问根节点;否则,程序退出。 如果对数据结构感兴趣,可以查看这篇博文: 执念斩长河专栏数据结构–目录

    实验:用python模拟二叉树

    二叉树原图 二叉树实验效果: 实验代码:

    # -*- coding:utf-8 -*- class BTree: def __init__(self, value): self.left = None self.data = value self.right = None def insertLeft(self, value): self.left = BTree(value) return self.left def insertRight(self, value): self.right = BTree(value) return self.right def show(self): print(self.data) def preorder(node): if node.data: node.show() if node.left: preorder(node.left) if node.right: preorder(node.right) def inorder(node): if node.data: if node.left: inorder(node.left) node.show() if node.right: inorder(node.right) def postorder(node): if node.data: if node.left: inorder(node.left) if node.right: inorder(node.right) node.show() if __name__ == '__main__': Root = BTree('Root') A = Root.insertLeft('A') C = A.insertLeft('C') D = A.insertRight('D') F = D.insertLeft('F') G = D.insertRight('G') B = Root.insertRight('B') E = B.insertRight('E') print('先序遍历结果如下....') preorder(Root) print('中序遍历结果如下.....') inorder(Root) print('后序遍历结果如下.....') postorder(Root)
    Processed: 0.031, SQL: 12