如果根据C语言的教程,我们一般会这么建二叉搜索树:
class Node(object):
def __init__(self,element):
self.element=element
self.lchild=None
self.rchild=None
class Tree(object):
def __init__(self,root=None):
self.root=root
def add(self,cur,item):
if cur is None:
cur=Node(item)
return
else:
if(item<cur.element):
cur=cur.lchild
self.add(cur,item)
elif(item>cur.element):
cur=cur.rchild
self.add(cur,item)
(这里需要先建立root),但是在实际运行中会发现,在判定了cur=None的时候(此时cur为某一个node的左右儿子),这个None是没办法直接赋值成为一个Node的。这里我想过用两个指针(单项链表里好用,但这里不太现实),搜索了半天终于找到方法。