SE250:lab-6:mgha023
		
		
		
		Jump to navigation
		Jump to search
		
minimum
Initially I had this :/*if (node == empty){ return ; } minimum( (*node)->left) ; return node;*/
but that wasn't really right... Then I had:
 Node* minimum( Node* node ) {
 	while (*node != empty){
 	node = &(*node)->left;
 	return node;
 	}
 return 0;
 }
maximum
Initially:
/*if (node == empty){
		return ;
	}
	//else return (*node)-> right;
	maximum( (*node)->right); */
Finally:
Node* maximum( Node* node ) {
		while (*node != empty){
		node = &(*node)->right;
		return node;
 	}
return 0;
}
lookup
Initially:
- if (node == empty){
 
return; } else lookup((*node)->key, node);*/
Finally:
 Node* lookup( int key, Node* node ) {
 
 	if (*node != empty){
  	printf("%d\n", (*node)->key);
	lookup(&(*node)->left);
 	lookup(&(*node)->right);
       }
 	return 0;
 }
successor funtion:next_pre
Node* next_pre( Node* node ) {
	if ((*node)->right != empty){
	   return next_pre((*node)->right);
       } 
       return o;
}
At this point I found this website Link Binary Search Treehttp://www.personal.kent.edu/~rmuhamma/Algorithms/MyAlgorithms/binarySearchTree.htm
that had some useful explanation  that helped me get a better understanding of what was to be done.
prev_pre
Node* next_pre( Node* node ) {
	
	if ((*node)->right != empty){
		return next_pre((*node)->right);
	}
	return 0;
	
}