Skip to content

Commit db3682f

Browse files
Merge pull request #2 from ArsiyaTasleem90250/ArsiyaTasleem90250-patch-2
Refactor insert and delete methods for clarity
2 parents 6af3070 + 430be4d commit db3682f

File tree

1 file changed

+74
-37
lines changed

1 file changed

+74
-37
lines changed

src/main/java/com/thealgorithms/datastructures/trees/BinarySearchTree.java

Lines changed: 74 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -17,27 +17,51 @@ public void insert(int key) {
1717
}
1818

1919
private Node insertRec(Node node, int key) {
20-
if (node == null) return new Node(key);
21-
if (key < node.key) node.left = insertRec(node.left, key);
22-
else node.right = insertRec(node.right, key);
23-
return node;
20+
if (node == null) {
21+
return new Node(key);
22+
}
23+
else {
24+
if (key < node.key) {
25+
node.left = insertRec(node.left, key);
26+
}
27+
else {
28+
node.right = insertRec(node.right, key);
29+
}
30+
return node;
31+
}
2432
}
2533

2634
public void delete(int key) {
2735
root = deleteRec(root, key);
2836
}
2937

3038
private Node deleteRec(Node node, int key) {
31-
if (node == null) return node;
32-
if (key < node.key) node.left = deleteRec(node.left, key);
33-
else if (key > node.key) node.right = deleteRec(node.right, key);
39+
if (node == null) {
40+
return node;
41+
}
3442
else {
35-
if (node.left == null) return node.right;
36-
if (node.right == null) return node.left;
37-
node.key = minValue(node.right);
38-
node.right = deleteRec(node.right, node.key);
43+
if (key < node.key) {
44+
node.left = deleteRec(node.left, key);
45+
}
46+
else if (key > node.key) {
47+
node.right = deleteRec(node.right, key);
48+
}
49+
else {
50+
if (node.left == null) {
51+
return node.right;
52+
}
53+
else {
54+
if (node.right == null) {
55+
return node.left;
56+
}
57+
else {
58+
node.key = minValue(node.right);
59+
node.right = deleteRec(node.right, node.key);
60+
}
61+
}
62+
}
63+
return node;
3964
}
40-
return node;
4165
}
4266

4367
private int minValue(Node node) {
@@ -55,10 +79,11 @@ public void inorder() {
5579
}
5680

5781
private void inorderRec(Node node) {
58-
if (node == null) return;
59-
inorderRec(node.left);
60-
System.out.print(node.key + " ");
61-
inorderRec(node.right);
82+
if (node != null) {
83+
inorderRec(node.left);
84+
System.out.print(node.key + " ");
85+
inorderRec(node.right);
86+
}
6287
}
6388

6489
public void preorder() {
@@ -67,10 +92,11 @@ public void preorder() {
6792
}
6893

6994
private void preorderRec(Node node) {
70-
if (node == null) return;
71-
System.out.print(node.key + " ");
72-
preorderRec(node.left);
73-
preorderRec(node.right);
95+
if (node != null) {
96+
System.out.print(node.key + " ");
97+
preorderRec(node.left);
98+
preorderRec(node.right);
99+
}
74100
}
75101

76102
public void postorder() {
@@ -79,10 +105,11 @@ public void postorder() {
79105
}
80106

81107
private void postorderRec(Node node) {
82-
if (node == null) return;
83-
postorderRec(node.left);
84-
postorderRec(node.right);
85-
System.out.print(node.key + " ");
108+
if (node != null) {
109+
postorderRec(node.left);
110+
postorderRec(node.right);
111+
System.out.print(node.key + " ");
112+
}
86113
}
87114

88115
public static void main(String[] args) {
@@ -97,20 +124,30 @@ public static void main(String[] args) {
97124
System.out.print("Enter value: ");
98125
int v = sc.nextInt();
99126
bst.insert(v);
100-
} else if (ch == 2) {
101-
System.out.print("Enter value to delete: ");
102-
int v = sc.nextInt();
103-
bst.delete(v);
104-
} else if (ch == 3) {
105-
bst.inorder();
106-
} else if (ch == 4) {
107-
bst.preorder();
108-
} else if (ch == 5) {
109-
bst.postorder();
110-
} else if (ch == 6) {
111-
break;
112127
} else {
113-
System.out.println("Invalid choice");
128+
if (ch == 2) {
129+
System.out.print("Enter value to delete: ");
130+
int v = sc.nextInt();
131+
bst.delete(v);
132+
} else {
133+
if (ch == 3) {
134+
bst.inorder();
135+
} else {
136+
if (ch == 4) {
137+
bst.preorder();
138+
} else {
139+
if (ch == 5) {
140+
bst.postorder();
141+
} else {
142+
if (ch == 6) {
143+
break;
144+
} else {
145+
System.out.println("Invalid choice");
146+
}
147+
}
148+
}
149+
}
150+
}
114151
}
115152
}
116153
}

0 commit comments

Comments
 (0)