Skip to content

Commit 1a29b74

Browse files
committed
added getHeight function
1 parent 53c540c commit 1a29b74

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

BinarySearchTree.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,16 @@ def find(self, data):
3737
return self.rightChild.find(data)
3838
else:
3939
return False
40+
41+
def getHeight(self):
42+
if self.leftChild and self.rightChild:
43+
return 1 + max(self.leftChild.getHeight(), self.rightChild.getHeight())
44+
elif self.leftChild:
45+
return 1 + self.leftChild.getHeight()
46+
elif self.rightChild:
47+
return 1 + self.rightChild.getHeight()
48+
else:
49+
return 1
4050

4151
def preorder(self):
4252
if self:
@@ -78,6 +88,12 @@ def find(self, data):
7888
return self.root.find(data)
7989
else:
8090
return False
91+
92+
def getHeight(self):
93+
if self.root:
94+
return self.root.getHeight()
95+
else:
96+
return -1
8197

8298
def remove(self, data):
8399
# empty tree
@@ -176,7 +192,7 @@ def preorder(self):
176192
if self.root is not None:
177193
print("PreOrder")
178194
self.root.preorder()
179-
195+
180196
def postorder(self):
181197
if self.root is not None:
182198
print("PostOrder")
@@ -189,8 +205,9 @@ def inorder(self):
189205

190206
bst = Tree()
191207
print(bst.insert(10))
192-
208+
#print(bst.insert(5))
193209
bst.preorder()
210+
print(bst.getHeight())
194211
#bst.postorder()
195212
#bst.inorder()
196213
print(bst.remove(10))

0 commit comments

Comments
 (0)