二叉搜索树实例练习


当然,我可以给你一个简单的二叉搜索树(BST)的Python实例练习。这里,我将展示如何定义一个二叉搜索树节点类,以及实现插入和遍历(中序遍历)的方法。


class TreeNode:
    def __init__(self, key):
        self.left = None
        self.right = None
        self.val = key

def insert(root, key):
    if root is None:
        return TreeNode(key)
    else:
        if root.val < key:
            root.right = insert(root.right, key)
        else:
            root.left = insert(root.left, key)
    return root

def inorder_traversal(root):
    if root:
        inorder_traversal(root.left)
        print(root.val, end=' ')
        inorder_traversal(root.right)

# 创建二叉搜索树并插入一些值
root = None
root = insert(root, 50)
insert(root, 30)
insert(root, 20)
insert(root, 40)
insert(root, 70)
insert(root, 60)
insert(root, 80)

# 中序遍历二叉搜索树
print("中序遍历结果:")
inorder_traversal(root)

在这个例子中,`TreeNode` 类代表二叉搜索树的节点,每个节点包含 `left`、`right` 和 `val` 三个属性,分别表示左子节点、右子节点和节点值。`insert` 函数用于向二叉搜索树中插入新的节点,确保树保持二叉搜索树的性质(左子节点的值小于父节点的值,右子节点的值大于父节点的值)。`inorder_traversal` 函数用于中序遍历二叉搜索树,并打印出遍历的结果,中序遍历的结果是一个升序的序列。

你可以根据需要调整这个示例,比如添加删除节点、查找节点等功能的实现。