二進位制搜尋樹 - 插入(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 文件