二进制搜索树 - 插入(Python)

这是使用 Python 进行二进制搜索树插入的简单实现。

一个例子如下所示:

http://i.stack.imgur.com/3NG0e.gif

在代码片段之后,每个图像都显示了执行可视化,这使得更容易可视化此代码的工作方式。

class Node:
    def __init__(self, val):
        self.l_child = None
        self.r_child = None
        self.data = val

StackOverflow 文档

def insert(root, node):
    if root is None:
        root = node
    else:
        if root.data > node.data:
            if root.l_child is None:
                root.l_child = node
            else:
                insert(root.l_child, node)
        else:
            if root.r_child is None:
                root.r_child = node
            else:
                insert(root.r_child, node)

StackOverflow 文档

def in_order_print(root):
    if not root:
        return
    in_order_print(root.l_child)
    print root.data
    in_order_print(root.r_child)

StackOverflow 文档

def pre_order_print(root):
    if not root:
        return        
    print root.data
    pre_order_print(root.l_child)
    pre_order_print(root.r_child)    

StackOverflow 文档