二叉查找树C++实现(二)
right == NULL && val >= pRoot->val){
pRoot->right = pNode;
pNode->parent = pRoot;
size++;
return;
}
if(val < pRoot->val)
InsertTree(pRoot->left,val);
else
InsertTree(pRoot->right,val);
}
BTreeNode* SearchTree(BTreeNode* pRoot,T val){
if(pRoot == NULL)
return NULL;
else if(val == pRoot->val)
return pRoot;
else if(val < pRoot->val)
return SearchTree(pRoot->left,val);
else
return SearchTree(pRoot->
right, val);
}
BTreeNode* SearchTreeMinVal(BTreeNode* pRoot){
if(pRoot==NULL)
return NULL;
else if(pRoot->left == NULL)
return pRoot;
elsewww.2cto.com
return SearchTreeMinVal(pRoot->left);
}
BTreeNode* SearchTreeMaxVal(BTreeNode* pRoot){
if(pRoot==NULL)
return NULL;
else if(pRoot->right == NULL)
return pRoot;
else
return SearchTreeMinVal(pRoot->right);
}