@@ -11,7 +11,6 @@ def __init__(self, data):
11
11
self .right = None
12
12
self .left = None
13
13
14
-
15
14
def build_tree ():
16
15
print ("\n ********Press N to stop entering at any point of time********\n " )
17
16
print ("Enter the value of the root node: " , end = "" )
@@ -43,19 +42,21 @@ def build_tree():
43
42
44
43
45
44
def pre_order (node ):
45
+ no_of_nodes = 0
46
46
if not isinstance (node , TreeNode ) or not node :
47
- return
47
+ return 0
48
48
print (node .data , end = " " )
49
- pre_order (node .left )
50
- pre_order (node .right )
49
+ return 1 + pre_order (node .left )#counting number of left nodes
50
+ return 1 + pre_order (node .right )#counting number of right nodes
51
51
52
52
53
53
def in_order (node ):
54
+ leaf_count = 0
54
55
if not isinstance (node , TreeNode ) or not node :
55
- return
56
+ return 0
56
57
in_order (node .left )
57
58
print (node .data , end = " " )
58
- in_order (node .right )
59
+ return 1 + in_order (node .right )#counting number of leaf nodes
59
60
60
61
61
62
def post_order (node ):
@@ -90,14 +91,13 @@ def level_order(node):
90
91
input_function = raw_input
91
92
else :
92
93
input_function = input
93
-
94
94
node = build_tree ()
95
95
print ("\n ********* Pre Order Traversal ************" )
96
- pre_order (node )
96
+ no_of_nodes = pre_order (node )
97
97
print ("\n ******************************************\n " )
98
98
99
99
print ("\n ********* In Order Traversal ************" )
100
- in_order (node )
100
+ leaf_count = in_order (node )
101
101
print ("\n ******************************************\n " )
102
102
103
103
print ("\n ********* Post Order Traversal ************" )
@@ -107,3 +107,6 @@ def level_order(node):
107
107
print ("\n ********* Level Order Traversal ************" )
108
108
level_order (node )
109
109
print ("\n ******************************************\n " )
110
+ print ("\n Total number of nodes : " ,no_of_nodes )
111
+ print ("\n Total number of leafs : " ,leaf_count )
112
+
0 commit comments