二进制搜索树 - 插入(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
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)
def in_order_print(root):
if not root:
return
in_order_print(root.l_child)
print root.data
in_order_print(root.r_child)
def pre_order_print(root):
if not root:
return
print root.data
pre_order_print(root.l_child)
pre_order_print(root.r_child)