@@ -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