QUOTE(devilbolt @ 13 Mar, 2007 - 10:57 AM)

can anyone help? i think there is an error wif the insert and search part. no .cpp file everything must be done in this .h file.
CODE
void INSERT(T1 _Key,T2 _Value) {
root = INSERT(root,_Key,_Value);
}
BSTNode<T1,T2>* SEARCH(T1 _Key) {
return SEARCH(root,_Key);
}
private:
BSTNode<T1,T2>* INSERT(BSTNode<T1,T2>* Node,T1 _Key,T2 _Value) {
if (Node== NULL)
{
Node=new BSTNode(T1 _Key,T2 _Value);
return Node;
}
else
if(T1 _Key->Key<Node->Key)
T1 _Key->LeftSubTree = insert(Node->LeftSubTree,T1 _Key,T2 _Value);
else
if(Node>T1 _Key->Key)
T1 _Key->RightSubTree = insert(Node->RightSubTree,T1 _Key,T2 _Value);
else
return T1 _Key;
}
BSTNode<T1,T2>* SEARCH(BSTNode<T1,T2>* Node,T1 _Key) {
if(T1 _Key==NULL)
return null;
if(T1 _Key==Node->Key)
return T1 _Key;
else
if(T1 _Key<Node->Key )
return search(Node->LeftSubTree,T1 _Key);
else
return search(Node->RightSubTree,T1 _Key);
}
I just had a look on those functions [search and insert].
And from overview I found something in Insert.
See what are you returning from there...
CODE
BSTNode<T1,T2>* INSERT(BSTNode<T1,T2>* Node,T1 _Key,T2 _Value)
{
if (Node== NULL)
{
Node=new BSTNode(T1 _Key,T2 _Value);
return Node;
}
else if(T1 _Key->Key<Node->Key)
T1 _Key->LeftSubTree = insert(Node->LeftSubTree,T1 _Key,T2 _Value);
else if(Node>T1 _Key->Key)
T1 _Key->RightSubTree = insert(Node->RightSubTree,T1 _Key,T2 _Value);
else
return T1 _Key;
}
returning new created node when "Node==NULL" is ok but look at the rest. what it will return if "node!=NULL"? I think it should return node again and not T1_Key.
well as you did not mentioned what problem you are facing all I found is this. hope it will help you.