-
Notifications
You must be signed in to change notification settings - Fork 0
/
BinaryTree.py
33 lines (33 loc) · 1.13 KB
/
BinaryTree.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class TreeNode:
def __init__(self,d=0,l=None,r=None):
self.data=d
self.left=l
self.right=r
def isLeaf(self):
return self.leaf==None and self.right==None
class BinaryTree:
def __init__(self,treenode):
self.__root=treenode
def __toStringHelper(self,node):
if node!=None:
self.__toStringHelper(node.left)
print(node.data)
self.__toStringHelper(node.right)
def toString(self):
self.__toStringHelper(self.__root)
def __containHelper(self,node,val):
if node==None:
return False
elif node.data==val:
return True
else:
return (self.__containHelper(node.left,val) or self.__containHelper(node.right,val))
def contains(self,val):
return self.__containHelper(self.__root,val)
def __toStringSideHelper(self,node,i):
if node!=None:
self.__toStringSideHelper(node.right,i+' ')
print(i+'%s' %node.data)
self.__toStringSideHelper(node.left,i+' ')
def toStringSide(self):
self.__toStringSideHelper(self.__root,i='')