Skip to content

Commit 90aa055

Browse files
committed
Adding Tree Sort
1 parent a8ebdc7 commit 90aa055

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

allalgorithms/sorting/tree_sort.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
class BinaryTreeNode(object):
2+
#initial values for value,left and right
3+
def __init__(self, value):
4+
self.value = value
5+
self.left = None
6+
self.right = None
7+
8+
9+
# inserting a new node in the binary tree
10+
def insert(tree, item):
11+
# if no initial element in the tree
12+
if tree == None:
13+
tree = BinaryTreeNode(item)
14+
else:
15+
if (item < tree.value):
16+
# if left branch of the tree is empty
17+
if (tree.left == None):
18+
tree.left = BinaryTreeNode(item)
19+
else:
20+
insert(tree.left, item)
21+
else:
22+
# if right branch of the tree is empty
23+
if (tree.right == None):
24+
tree.right = BinaryTreeNode(item)
25+
else:
26+
insert(tree.right, item)
27+
return tree
28+
29+
30+
# funtion for the inorder traversal of the binary tree
31+
def in_order_traversal(tree):
32+
if (tree.left != None):
33+
in_order_traversal(tree.left)
34+
print(tree.value)
35+
if (tree.right != None):
36+
in_order_traversal(tree.right)
37+
38+
39+
if __name__ == '__main__':
40+
x = list(map(int,input().split(" ")))
41+
# root node
42+
t = insert(None, x[0]);
43+
# inserting all elements in the binary tree
44+
for i in x[1:]:
45+
insert(t,i)
46+
# the results of the inorder traversal of a binary tree is a sorted
47+
in_order_traversal(t)

0 commit comments

Comments
 (0)