i have written the code for searching and insertion in a binary search tree...i understood most of the things in that but there are some doubts which i would be very grateful if u could make me understand about them....

OUTPUT SHOWING ON RUNNING THE PROGRAM:Code:#include <stdio.h> #include <stdlib.h> struct node { int data; struct node *left; struct node *right; }; int search ( struct node *tree, int key ) { if ( tree == NULL ) { return 0; } else if ( key == tree->data ) { return 1; } else if ( key < tree->data ) { return search ( tree->left, key ); } else { return search ( tree->right, key ); } } struct node *insert ( struct node *tree, int key ) { if ( tree == NULL ) { tree = malloc ( sizeof *tree ); if ( tree == NULL ) return tree; tree->data = key; tree->left = tree->right = NULL; } else if ( key < tree->data ) { tree->left = insert ( tree->left, key ); } else { tree->right = insert ( tree->right, key ); } return tree; } void pretty_print ( struct node *tree, int level ) { if ( tree == NULL ) { printf ( "" ); } else { pretty_print ( tree->right, level + 1 ); printf ( "%d", tree->data ); pretty_print ( tree->left, level + 1 ); } } void inorder_print ( struct node *tree ) { if ( tree == NULL ) return; inorder_print ( tree->left ); printf ( "%-4d", tree->data ); inorder_print ( tree->right ); } int main ( void ) { struct node *tree = NULL; int i, n = 0; for ( i = 0; i < 10; i++ ) tree = insert ( tree, rand() % 100 ); printf("the tree is"); pretty_print ( tree, 0 ); printf ( "\n the tree in inorder traversal is:\n"); inorder_print ( tree ); for ( i = 0; i < 100; i++ ) { if ( search ( tree, i ) != 0 ) { printf ( "%-4d", i ); printf ( "\n%d numbers found", n ); ++n; } } getchar(); return 0; }

the tree is:

95908256484630261715

the tree in inorder traversal is:

1517263046485682909515

0 numbers found17

1 numbers found26

2 numbers found30

3 numbers found46

4 numbers found48

5 numbers found56

6 numbers found82

7 numbers found90

8 numbers found95

9 numbers found

__________________

i tried to write the above code but i have some doubts,i hope you would help me out,which are as follows:

--now why is it taking the random numbers by itself and taking from th user,is it becoz of the ran()%100 function?what is it doing over there?i want to take inputs from the user,how will i do that?

--also i could not understand the logic on how to take the inorder traversal while running the program,although i know how does it work that is by first taking left child ,the root and then the right child....but could u plz help me out in finding which is my right child ,root and left child while running the program?

--how would i know that the number is not found?what would i write in the above program for that?

--and in our main() function the second time we are using our foor loop could u plz tell me why have we taken i<100 over there?why are wetaking it till 100?

i would be really grateful if u can make me understand about those doubts.