1
1
class Node :
2
2
"""
3
- A Node has data variable and pointers toits left and right nodes.
3
+ A Node has data variable and pointers
4
+ to its left and right nodes.
4
5
"""
5
6
6
7
def __init__ (self , data ):
@@ -20,8 +21,9 @@ def make_tree() -> Node:
20
21
21
22
def preorder (root ):
22
23
"""
23
- PreOrder traversal:visit root then its
24
- leftsubtree followed by right subtree.
24
+ PreOrder traversal: visit root node
25
+ then its left subtree followed
26
+ by right subtree.
25
27
>>> preorder(make_tree())
26
28
4 2 5 1 3
27
29
"""
@@ -33,9 +35,9 @@ def preorder(root):
33
35
34
36
def postorder (root ):
35
37
"""
36
- PostOrder traversal:visit leftsubtree
37
- followed by right subtree and
38
- then root node.
38
+ PostOrder traversal: visit left subtree
39
+ followed by right subtree
40
+ and then root node.
39
41
"""
40
42
if root :
41
43
postorder (root .left )
@@ -45,8 +47,8 @@ def postorder(root):
45
47
46
48
def inorder (root ):
47
49
"""
48
- InOrder traversal: visit leftsubtree
49
- followed by root node and
50
+ InOrder traversal: visit its leftsubtree
51
+ followed by root node and
50
52
then right subtree.
51
53
"""
52
54
if root :
@@ -57,7 +59,7 @@ def inorder(root):
57
59
58
60
def height (root ):
59
61
"""
60
- Recursive function for calculating
62
+ Recursive function for calculating
61
63
height of the binary tree.
62
64
"""
63
65
if not root :
@@ -73,8 +75,8 @@ def height(root):
73
75
def levelorder1 (root ):
74
76
"""
75
77
Print whole binary tree in Level Order Traverse.
76
- Level Order traverse: Visit nodes of
77
- the tree level-by-level.
78
+ Level Order traverse: Visit nodes
79
+ of the tree level-by-level.
78
80
"""
79
81
if not root :
80
82
return
@@ -106,8 +108,9 @@ def levelorder2(root, level):
106
108
107
109
def print_left_to_right (root , level ):
108
110
"""
109
- Print elements on particular level from
110
- left to right direction of the binary tree.
111
+ Print elements on particular level
112
+ from left to right direction of
113
+ the binary tree.
111
114
"""
112
115
if not root :
113
116
return
@@ -120,8 +123,9 @@ def print_left_to_right(root, level):
120
123
121
124
def print_right_to_left (root , level ):
122
125
"""
123
- Print elements on particular level from
124
- right to left direction of the binary tree.
126
+ Print elements on particular level
127
+ from right to left direction of
128
+ the binary tree.
125
129
"""
126
130
if not root :
127
131
return
@@ -134,8 +138,9 @@ def print_right_to_left(root, level):
134
138
135
139
def zigzag (root ):
136
140
"""
137
- ZigZag traverse: Print node left to right
138
- and right to left, alternatively.
141
+ ZigZag traverse: Print node
142
+ left to right and
143
+ right to left, alternatively.
139
144
"""
140
145
flag = 0
141
146
height_tree = height (root )
@@ -152,7 +157,11 @@ def main(): # Main function for testing.
152
157
"""
153
158
Create binary tree.
154
159
"""
155
- make_tree ()
160
+ root = Node (1 )
161
+ root .left = Node (2 )
162
+ root .right = Node (3 )
163
+ root .left .left = Node (4 )
164
+ root .left .right = Node (5 )
156
165
157
166
"""
158
167
All Traversals of the binary are as follows:
0 commit comments