@@ -17,6 +17,7 @@ void doInsert();
17
17
void doDelete ();
18
18
void doSearch ();
19
19
void doInOrder ();
20
+ void doShowHeight ();
20
21
21
22
// Functions for creating a BST structure
22
23
struct node * newNode (int value ,struct node * parent );
@@ -61,13 +62,15 @@ void showMenu(){
61
62
printf ("(2) Delete a Node\n" );
62
63
printf ("(3) Search a Node\n" );
63
64
printf ("(4) Print In Order\n" );
64
- printf ("(5) Exit\n" );
65
+ printf ("(5) Show Heights of Root\n" );
66
+ printf ("(6) Exit\n" );
65
67
66
68
switch (getch ()){
67
69
case '1' : doInsert (); break ;
68
70
case '2' : doDelete (); break ;
69
71
case '3' : doSearch (); break ;
70
72
case '4' : doInOrder (); break ;
73
+ case '5' : doShowHeight (); break ;
71
74
default : exit (0 );
72
75
}
73
76
}
@@ -203,6 +206,20 @@ void doInOrder(){
203
206
showMenu ();
204
207
}
205
208
209
+ void doShowHeight (){
210
+ system ("cls" );
211
+ printf ("--- Show Heights ---\n" );
212
+ if (tRoot != NULL ){
213
+ printf ("Node %d Height: %d\n" ,tRoot -> value ,getHeight (tRoot ));
214
+ printf ("Node %d Left sub-tree Height: %d\n" ,tRoot -> value ,getHeight (tRoot -> left ));
215
+ printf ("Node %d Right subtree Height: %d\n" ,tRoot -> value ,getHeight (tRoot -> right ));
216
+ } else printf ("The tree is empty!\n" );
217
+
218
+ printf ("\n\n\nPress any key to continue..." );
219
+ getch ();
220
+ showMenu ();
221
+ }
222
+
206
223
struct node * newNode (int value ,struct node * parent ){
207
224
struct node * root = (struct node * )malloc (sizeof (struct node ));
208
225
root -> value = value ;
0 commit comments