I am doing a binary search tree. I need some hints on how to do the insert and find. Anyone?

Code:#include <stdio.h> #define MAX_SIZE 32 /* should be a power of two */ #define EMPTY -1 /* special value to indicate empty node */ typedef int tree [MAX_SIZE]; /* Defines 'tree' as the type of an array of MAX_SIZE integers. */ void initialize_tree (tree t) { int i; for( i = 0; i < MAX_SIZE; i++ ) { t[i] = -1; } } void print_tree(tree t) { int i; for(i = 1; i < MAX_SIZE; i++) { if(t[i] == EMPTY) { printf(". "); } else { printf("%d ", t[i]); } } printf("\n"); } void bst_insert(tree t, int v) { /*** HERE ***/ } int bst_find(tree t, int v) /* return 1 if found, 0 if not */ { /*** HERE ***/ return 0; } int ask_for_number() { int x; printf("Enter an integer, or %d to quit.\n", EMPTY); scanf("%d", &x); return x; } int main() { tree t; int x; initialize_tree(t); x = ask_for_number(); while(x != EMPTY) { bst_insert(t, x); print_tree(t); x = ask_for_number(); } printf("DONE INSERTING. Now you may query.\n"); x = ask_for_number(); while(x != EMPTY) { if(bst_find(t, x)) { printf("FOUND.\n"); } else { printf("NOT FOUND. :(\n"); } x = ask_for_number(); } return 0; }