Skip to content

Commit 0717a00

Browse files
committed
Tree Data Structure implementation in Python
1 parent 73080fa commit 0717a00

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

Trees/Tree.py

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

0 commit comments

Comments
 (0)