11import collections
22
3+ NodesBeenMade = 0
34
45class Node :
56 def __init__ (self , data ) :
@@ -26,25 +27,31 @@ def PrintTree(self , trav_type) :
2627 def preorder_tree (self , start , trav ) :
2728 ## ROOT > LEFT > RIGHT
2829 if start :
29- trav += (str (start .data ) + "__" )
30+ global NodesBeenMade
31+ NodesBeenMade += 1
32+ trav += (str (start .data ) + "," )
3033 trav = self .preorder_tree (start .left , trav )
3134 trav = self .preorder_tree (start .right , trav )
3235 return trav
3336
3437 def inorder_tree (self , start , trav ) :
3538 ## LEFT > ROOT > RIGHT
3639 if start :
40+ global NodesBeenMade
41+ NodesBeenMade += 1
3742 trav = self .inorder_tree (start .left , trav )
38- trav += (str (start .data ) + "__ " )
43+ trav += (str (start .data ) + ", " )
3944 trav = self .inorder_tree (start .right , trav )
4045 return trav
4146
4247 def postorder_tree (self , start , trav ) :
4348 ## LEFT > RIGHT > ROOT
4449 if start :
50+ global NodesBeenMade
51+ NodesBeenMade += 1
4552 trav = self .postorder_tree (start .left , trav )
4653 trav = self .postorder_tree (start .right , trav )
47- trav += (str (start .data ) + "__ " )
54+ trav += (str (start .data ) + ", " )
4855 return trav
4956 def levelorder_tree (self , start ) :
5057 ans = []
@@ -70,7 +77,32 @@ def levelorder_tree(self , start) :
7077 queue .append (currNode .right )
7178 ans .append (currList )
7279 return ans
80+
81+ def floors_number (self ) :
82+ result = tree .PrintTree ("levelorder" )
83+ return len (result )
84+
85+ def delete_tree (self ) :
86+ tree .root = None
87+
88+ def MAX_MIN (self ) :
89+ result = tree .PrintTree ("preorder" )
90+ result = result .split ("," )
91+ result .pop ()
92+ result = [int (x ) for x in result ]
93+ return max (result ),min (result )
94+
95+ def find (self , atribute ) :
96+ result = tree .PrintTree ("levelorder" )
97+ x = 0
98+ for i in result :
99+ x += 1
100+ for j in i :
101+ if j == atribute :
102+ return x
103+
73104
105+
74106
75107 """_summary_
76108 2
@@ -82,12 +114,31 @@ def levelorder_tree(self , start) :
82114 [3.4]
83115 [5,6]
84116 """
85-
117+ # made a binary tree -> 1
118+ # node class -> 1
119+ # insert method -> 1
120+ # NodesBeenMade for number of nodes -> 1
121+ # number of floors -> 1
122+ # how to define number of leaves -> 0
123+ # made the 4 method and its working -> 1
124+ # delete the tree -> 1
125+ # MAX and MIN in our tree -> 1
126+ # full tree -> 0
127+ # compare of two tree -> 0
128+
129+
86130
87131tree = BinaryTree (2 )
88132tree .root .left = Node (3 )
89133tree .root .right = Node (4 )
90134tree .root .left .left = Node (5 )
91135tree .root .left .right = Node (6 )
92136
93- print (tree .PrintTree ("levelorder" ))
137+
138+
139+
140+ print (tree .PrintTree ("levelorder" ))
141+ result = tree .MAX_MIN ()
142+ print ("MAX and MIN is equal to : " , result )
143+ x = tree .find (5 )
144+ print ("Found the desired element at the : [" , x , "] floor " )
0 commit comments