rendered paste body#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <math.h>#include <time.h>#include "BinaryTree.h"CmpResult intCompare(Value first, Value second){ int result = ( (*(int*)first) -(*(int*)second) ); return ( result !=0 )?((result/abs(result))):(Equals);}void intFree(Value value){ free((int*)value);}Value intCreate(){ Value value = NULL; if( ( value=malloc(sizeof(int) ) ) == NULL ) _ErrMsg("Insufficient Memory when allocation a value"); return value;}void intPrint(Leaf leaf){ fprintf(stdout,"\n%d",*(int*)leaf.value);}int main(){/* Base Variables. */Compare_Func cmpF;Free_Func freeF;Create_New crtNewF;Print_Function printF;Binary_Tree *tree = NULL;/* inside use variables. */Value a;int index,stopCondition;Boolean flag = True;Value b; /* initialize functions*/ init(&cmpF,&freeF,&crtNewF,&printF,intCompare,intFree,intCreate,intPrint); /**/ srand( time(NULL) ); stopCondition = ((rand()%35)+10); for(index=0; index<stopCondition; ++index){ a = crtNewF(); *(int*)a = rand()%50; //fprintf(stdout,"num=%d, result = %d\n",*(int*)a,insert(&tree,a,cmpF)); if( insert(&tree,a,cmpF) ) fprintf(stdout,"The Number %d was inserted into the tree.\n",*(int*)a); } putchar('\n'); printMin(tree,printF); for(index^=index; flag; ++index){ a = crtNewF(); *(int*)a = rand()%30; if(isExist(tree,a,cmpF) ) flag = False; } removeValue(&tree,a,cmpF,freeF); fprintf(stdout,"\n\n Remove %d\n",*(int*)a); printMin(tree,printF); fprintf(stdout,"\n\n print max : \n"); printMax(tree,printF); destroyTree(&tree,freeF); _WaitForResponse;return 0;}