题目
计算一棵数的大小
思路
递归先计算左子树,在右子树最后+1
代码
class binary_search_tree:
def __init__(self,root=None):
self.root = root
def add(self,value):
self.root = self.__add(self.root,value)
def __add(self,node,value):
if node is None:
return Node(value)
if node._item < value:
node._right = self.__add(node._right,value)
elif node._item > value:
node._left = self.__add(node._left,value)
elif node._item == value:
pass
return node
def print_preorder(self):
self.__print_preorder(self.root)
print(' ')
def __print_preorder(self,node):
if node is None:
return None
print('[',node._item,']',end='')
self.__print_preorder(node._left)
self.__print_preorder(node._right)
def size(self):
return self.__size(self.root)
def __size(self,node):
if node is None:
return 0
return 1 + self.__size(node._left) + self.__size(node._right)