Skip to content

Commit ec09800

Browse files
committed
Binary Search Tree added
1 parent fa274a9 commit ec09800

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

BST.py

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
2+
class Node:
3+
def __init__(self, key):
4+
self.key = key
5+
self.left = None
6+
self.right = None
7+
8+
def inorder(root):
9+
if root is not None:
10+
inorder(root.left)
11+
print root.key,
12+
inorder(root.right)
13+
14+
def insert( node, key):
15+
16+
if node is None:
17+
return Node(key)
18+
19+
if key < node.key:
20+
node.left = insert(node.left, key)
21+
else:
22+
node.right = insert(node.right, key)
23+
24+
return node
25+
26+
def minValueNode( node):
27+
current = node
28+
29+
while(current.left is not None):
30+
current = current.left
31+
32+
return current
33+
34+
def deleteNode(root, key):
35+
36+
if root is None:
37+
return root
38+
39+
if key < root.key:
40+
root.left = deleteNode(root.left, key)
41+
42+
elif(key > root.key):
43+
root.right = deleteNode(root.right, key)
44+
45+
else:
46+
if root.left is None :
47+
temp = root.right
48+
root = None
49+
return temp
50+
51+
elif root.right is None :
52+
temp = root.left
53+
root = None
54+
return temp
55+
56+
temp = minValueNode(root.right)
57+
root.key = temp.key
58+
root.right = deleteNode(root.right , temp.key)
59+
60+
61+
return root
62+
63+
root = None
64+
root = insert(root, 58)
65+
root = insert(root, 32)
66+
root = insert(root, 8)
67+
root = insert(root, 59)
68+
root = insert(root, 98)
69+
root = insert(root, 6)
70+
root = insert(root, 4)
71+
inorder(root)
72+
root = deleteNode(root, 59)
73+
inorder(root)
74+
root = deleteNode(root, 98)
75+
inorder(root)
76+
root = deleteNode(root, 4)
77+
inorder(root)
78+

0 commit comments

Comments
 (0)