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.