Skip to content

Commit b8d54de

Browse files
Add insert and count-nodes
I added insert and counting-node functions for BinaryTree and BinarySearchTree
1 parent e00de78 commit b8d54de

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

pygorithm/data_structures/tree.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,16 @@ def __init__(self):
7272
self._pre_order = []
7373
self._post_order = []
7474

75+
def insert(self, data):
76+
"""
77+
insert data to root or create a root node
78+
"""
79+
if self.root:
80+
self.root.set_data(data)
81+
else:
82+
self.root = Node()
83+
self.root.set_data(data)
84+
7585
def inorder(self, root):
7686
"""
7787
in this we traverse first to the leftmost node,
@@ -117,6 +127,24 @@ def postorder(self, root):
117127
self._post_order.append(root.get_data())
118128
return self._post_order
119129

130+
def number_of_nodes(self, root):
131+
"""
132+
counting number of nodes
133+
"""
134+
# need testing
135+
left_number = 0;
136+
right_number = 0;
137+
138+
#number of nodes left side
139+
if root.get_left():
140+
left_number = self.number_of_nodes(root.get_left())
141+
142+
#numbeof nodes right side
143+
if root.get_right():
144+
right_number = self.number_of_nodes(root.get_right())
145+
146+
return left_number + right_number + 1
147+
120148
@staticmethod
121149
def get_code():
122150
"""
@@ -359,6 +387,24 @@ def postorder(self):
359387
if self.root is not None:
360388
return self.root.postorder(self.root)
361389

390+
def number_of_nodes(self, root):
391+
"""
392+
counting number of nodes
393+
"""
394+
# need testing
395+
left_number = 0;
396+
right_number = 0;
397+
398+
#number of nodes left side
399+
if root.get_left():
400+
left_number = self.number_of_nodes(root.get_left())
401+
402+
#numbeof nodes right side
403+
if root.get_right():
404+
right_number = self.number_of_nodes(root.get_right())
405+
406+
return left_number + right_number + 1
407+
362408
@staticmethod
363409
def get_code():
364410
"""

0 commit comments

Comments
 (0)