Skip to content

Commit a919ee1

Browse files
committed
Depth First Traversal
1 parent fb6c9cb commit a919ee1

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# Author: OMKAR PATHAK
2+
3+
# Depth first search is performed in three ways:
4+
# Inorder
5+
# Preorder
6+
# Postorder
7+
8+
class Node(object):
9+
def __init__(self, data = None):
10+
self.left = None
11+
self.right = None
12+
self.data = data
13+
14+
# for setting left node
15+
def setLeft(self, node):
16+
self.left = node
17+
18+
# for setting right node
19+
def setRight(self, node):
20+
self.right = node
21+
22+
# for getting the left node
23+
def getLeft(self):
24+
return self.left
25+
26+
# for getting right node
27+
def getRight(self):
28+
return self.right
29+
30+
# for setting data of a node
31+
def setData(self, data):
32+
self.data = data
33+
34+
# for getting data of a node
35+
def getData(self):
36+
return self.data
37+
38+
39+
# in this we traverse first to the leftmost node, then print its data and then traverse for rightmost node
40+
def inorder(Tree):
41+
if Tree:
42+
inorder(Tree.getLeft())
43+
print(Tree.getData(), end = ' ')
44+
inorder(Tree.getRight())
45+
return
46+
47+
# in this we first print the root node and then traverse towards leftmost node and then to the rightmost node
48+
def preorder(Tree):
49+
if Tree:
50+
print(Tree.getData(), end = ' ')
51+
preorder(Tree.getLeft())
52+
preorder(Tree.getRight())
53+
return
54+
55+
# in this we first traverse to the leftmost node and then to the rightmost node and then print the data
56+
def postorder(Tree):
57+
if Tree:
58+
postorder(Tree.getLeft())
59+
postorder(Tree.getRight())
60+
print(Tree.getData(), end = ' ')
61+
return
62+
63+
if __name__ == '__main__':
64+
root = Node(1)
65+
root.setLeft(Node(2))
66+
root.setRight(Node(3))
67+
root.left.setLeft(Node(4))
68+
69+
print('Inorder Traversal:')
70+
inorder(root)
71+
print('\nPreorder Traversal:')
72+
preorder(root)
73+
print('\nPostorder Traversal:')
74+
postorder(root)
75+
76+
# OUTPUT:
77+
# Inorder Traversal:
78+
# 4 2 1 3
79+
# Preorder Traversal:
80+
# 1 2 4 3
81+
# Postorder Traversal:
82+
# 4 2 3 1

0 commit comments

Comments
 (0)