以下是 Python 实现二叉树的代码示例:

# 定义二叉树节点结构体
class TreeNode:
    def __init__(self, data):
        self.data = data
        self.left = None
        self.right = None

# 定义二叉树类
class BinaryTree:
    def __init__(self):
        self.root = None

    # 插入节点
    def insert(self, data):
        new_node = TreeNode(data)
        if not self.root:
            self.root = new_node
        else:
            queue = [self.root]
            while queue:
                node = queue.pop(0)
                if not node.left:
                    node.left = new_node
                    return
                elif not node.right:
                    node.right = new_node
                    return
                else:
                    queue.append(node.left)
                    queue.append(node.right)

    # 先序遍历
    def preorder(self, node):
        if not node:
            return
        print(node.data, end=' ')
        self.preorder(node.left)
        self.preorder(node.right)

    # 中序遍历
    def inorder(self, node):
        if not node:
            return
        self.inorder(node.left)
        print(node.data, end=' ')
        self.inorder(node.right)

    # 后序遍历
    def postorder(self, node):
        if not node:
            return
        self.postorder(node.left)
        self.postorder(node.right)
        print(node.data, end=' ')

# 测试代码
if __name__ == '__main__':
    tree = BinaryTree()
    tree.insert(1)
    tree.insert(2)
    tree.insert(3)
    tree.insert(4)
    tree.insert(5)
    tree.insert(6)
    tree.insert(7)
    print('先序遍历:', end='')
    tree.preorder(tree.root)
    print('\n中序遍历:', end='')
    tree.inorder(tree.root)
    print('\n后序遍历:', end='')
    tree.postorder(tree.root)

在上面的代码中,我们首先定义了一个 TreeNode 结构体,用于表示二叉树中的节点。然后定义了一个 BinaryTree 类,用于表示二叉树本身。在 BinaryTree 类中,我们实现了插入节点、先序遍历、中序遍历和后序遍历四个方法,分别用于向二叉树中插入节点和遍历二叉树。

最后,我们在 __main__ 函数中测试了这些方法的正确性。

python-二叉树代码

原文地址: https://www.cveoy.top/t/topic/qxL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录