定义结点
首先定义一个二叉链表结点结构的定义
class Node(object):
"""节点定义,包括数据项、左孩子、右孩子"""
def __init__(self, data):
self.data = data
self.lchild = None
self.rchild = None
查找
def searchTree(T, key, f, p):
"""查找
T:树;
key:查找的节点
f:指向T的双亲,初始值为None
p:若未查找到,则返回最后一个访问的叶子结点;若查找到,则返回搜索到的结点"""
if not T:
"""T为空树,查找失败
p为空树的双亲结点,即访问的最后一个结点"""
p = f
return False, p
elif key == T.data:
"""查找成功
p为当前查找的结点"""
p = T
return True, p
elif key > T.data:
"""查找右子树"""
return searchTree(T.rchild, key, T, p)
else:
"""查找左子树"""
return searchTree(T.lchild, key, T, p)
插入
def insertTree(T, key):
"""插入"""
is_exist, p = searchTree(T, key, None,