Skip to content

Commit 543201c

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent 6b1f869 commit 543201c

1 file changed

Lines changed: 89 additions & 83 deletions

File tree

Lines changed: 89 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,89 @@
1-
class Node:
2-
def __init__(self, data):
3-
self.data = data
4-
self.left = None
5-
self.right = None
6-
7-
# Function to insert a new node in the BST
8-
def insert(root, data):
9-
if root is None:
10-
return Node(data)
11-
if data < root.data:
12-
root.left = insert(root.left, data)
13-
else:
14-
root.right = insert(root.right, data)
15-
return root
16-
17-
# Function to perform in-order traversal of the BST
18-
def in_order_traversal(root):
19-
if root is not None:
20-
in_order_traversal(root.left)
21-
print(root.data, end=' ')
22-
in_order_traversal(root.right)
23-
24-
# Function to find the minimum value node in a given subtree
25-
def min_value_node(node):
26-
current = node
27-
while current and current.left is not None:
28-
current = current.left
29-
return current
30-
31-
# Function to delete a node from the BST
32-
def delete_node(root, key):
33-
if root is None:
34-
return root
35-
36-
if key < root.data:
37-
root.left = delete_node(root.left, key)
38-
elif key > root.data:
39-
root.right = delete_node(root.right, key)
40-
else:
41-
# Node with only one child or no child
42-
if root.left is None:
43-
temp = root.right
44-
root = None # Clear the node
45-
return temp
46-
elif root.right is None:
47-
temp = root.left
48-
root = None # Clear the node
49-
return temp
50-
51-
# Node with two children: get the inorder successor
52-
temp = min_value_node(root.right)
53-
root.data = temp.data
54-
root.right = delete_node(root.right, temp.data)
55-
56-
return root
57-
58-
def main():
59-
root = None
60-
61-
# Inserting nodes into the BST
62-
root = insert(root, 50)
63-
insert(root, 30)
64-
insert(root, 20)
65-
insert(root, 40)
66-
insert(root, 70)
67-
insert(root, 60)
68-
insert(root, 80)
69-
70-
print("Inorder Traversal of the BST before deletion:")
71-
in_order_traversal(root)
72-
print("\n")
73-
74-
# Deleting a node
75-
key = int(input("Enter the Key Element to be deleted: "))
76-
root = delete_node(root, key)
77-
print(f"Element ({key}) Deleted")
78-
print(f"Inorder Traversal of the BST after deletion of {key}:")
79-
in_order_traversal(root)
80-
print("\n")
81-
82-
if __name__ == "__main__":
83-
main()
1+
class Node:
2+
def __init__(self, data):
3+
self.data = data
4+
self.left = None
5+
self.right = None
6+
7+
8+
# Function to insert a new node in the BST
9+
def insert(root, data):
10+
if root is None:
11+
return Node(data)
12+
if data < root.data:
13+
root.left = insert(root.left, data)
14+
else:
15+
root.right = insert(root.right, data)
16+
return root
17+
18+
19+
# Function to perform in-order traversal of the BST
20+
def in_order_traversal(root):
21+
if root is not None:
22+
in_order_traversal(root.left)
23+
print(root.data, end=" ")
24+
in_order_traversal(root.right)
25+
26+
27+
# Function to find the minimum value node in a given subtree
28+
def min_value_node(node):
29+
current = node
30+
while current and current.left is not None:
31+
current = current.left
32+
return current
33+
34+
35+
# Function to delete a node from the BST
36+
def delete_node(root, key):
37+
if root is None:
38+
return root
39+
40+
if key < root.data:
41+
root.left = delete_node(root.left, key)
42+
elif key > root.data:
43+
root.right = delete_node(root.right, key)
44+
else:
45+
# Node with only one child or no child
46+
if root.left is None:
47+
temp = root.right
48+
root = None # Clear the node
49+
return temp
50+
elif root.right is None:
51+
temp = root.left
52+
root = None # Clear the node
53+
return temp
54+
55+
# Node with two children: get the inorder successor
56+
temp = min_value_node(root.right)
57+
root.data = temp.data
58+
root.right = delete_node(root.right, temp.data)
59+
60+
return root
61+
62+
63+
def main():
64+
root = None
65+
66+
# Inserting nodes into the BST
67+
root = insert(root, 50)
68+
insert(root, 30)
69+
insert(root, 20)
70+
insert(root, 40)
71+
insert(root, 70)
72+
insert(root, 60)
73+
insert(root, 80)
74+
75+
print("Inorder Traversal of the BST before deletion:")
76+
in_order_traversal(root)
77+
print("\n")
78+
79+
# Deleting a node
80+
key = int(input("Enter the Key Element to be deleted: "))
81+
root = delete_node(root, key)
82+
print(f"Element ({key}) Deleted")
83+
print(f"Inorder Traversal of the BST after deletion of {key}:")
84+
in_order_traversal(root)
85+
print("\n")
86+
87+
88+
if __name__ == "__main__":
89+
main()

0 commit comments

Comments
 (0)