以下是使用 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):
        '插入节点'
        if self.root is None:
            self.root = TreeNode(val)
        else:
            self._insert(val, self.root)

    def _insert(self, val, node):
        '辅助函数,递归插入节点'
        if val < node.val:
            if node.left is None:
                node.left = TreeNode(val)
            else:
                self._insert(val, node.left)
        else:
            if node.right is None:
                node.right = TreeNode(val)
            else:
                self._insert(val, node.right)

    def find(self, val):
        '查找节点'
        if self.root is None:
            return False
        else:
            return self._find(val, self.root)

    def _find(self, val, node):
        '辅助函数,递归查找节点'
        if val == node.val:
            return True
        elif val < node.val and node.left is not None:
            return self._find(val, node.left)
        elif val > node.val and node.right is not None:
            return self._find(val, node.right)
        return False

    def inorder_traversal(self):
        '中序遍历'
        if self.root is not None:
            self._inorder_traversal(self.root)

    def _inorder_traversal(self, node):
        '辅助函数,递归中序遍历'
        if node.left is not None:
            self._inorder_traversal(node.left)
        print(node.val)
        if node.right is not None:
            self._inorder_traversal(node.right)

if __name__ == '__main__':
    # 创建二叉树
    bt = BinaryTree()
    bt.insert(5)
    bt.insert(3)
    bt.insert(8)
    bt.insert(1)
    bt.insert(4)
    bt.insert(7)
    bt.insert(9)
    bt.insert(2)
    bt.insert(6)

    # 中序遍历
    bt.inorder_traversal()

    # 查找节点
    print(bt.find(8))
    print(bt.find(10))

在该示例代码中,我们定义了 TreeNode 类和 BinaryTree 类,分别表示二叉树的节点和二叉树本身。在 BinaryTree 类中,我们实现了插入节点、查找节点、中序遍历等方法。其中,插入节点和查找节点使用了递归实现,中序遍历使用了栈实现。在 main 函数中,我们创建了一个二叉树对象,并对其进行了一些操作,例如插入节点、中序遍历、查找节点等。

Python 实现二叉树:代码示例及详解

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

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