All pastes #1997318 Raw Edit

binary_tree main function

public c v1 · immutable
#1997318 ·published 2010-11-20 19:09 UTC
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;}