Files
Work/bsptree/SCRAPS.TXT
2024-08-07 09:12:07 -04:00

57 lines
1.4 KiB
Plaintext

template <class T>
T *BTree<T>::searchNode(TreeNode<T> *lpRootNode,const T &someItem)
{
if(!lpRootNode)return 0;
while(!(someItem==lpRootNode->item()))
{
if(someItem<lpRootNode->item())lpRootNode=lpRootNode->leftNode();
else lpRootNode=lpRootNode->rightNode();
}
return &lpRootNode->item();
}
template <class T>
T *BTree<T>::searchNode(TreeNode<T> *lpRootNode,const T &someItem)
{
if(!lpRootNode)return 0;
while(!(someItem==lpRootNode->item()))
{
if(someItem<lpRootNode->item())lpRootNode=lpRootNode->leftNode();
else lpRootNode=lpRootNode->rightNode();
}
return &lpRootNode->item();
}
#if 0
template <class T>
void BTree<T>::remove(const T &someItem,TreeNode<T> *pRootNode)
{
TreeNode<T> *pTmpNode;
if(!pRootNode)return;
if(someItem<pRootNode->item())remove(someItem,pRootNode->leftNode());
else if(someItem>pRootNode->item())remove(someItem,pRootNode->rightNode());
else
{
pTmpNode=pRootNode;
if(!pTmpNode->rightNode())pRootNode=pTmpNode->leftNode();
else if(!pTmpNode->leftNode())pRootNode=pTmpNode->rightNode();
else
{
TreeNode<T> *pLeftNode=pTmpNode->leftNode();
while(pLeftNode->rightNode())pLeftNode=pLeftNode->rightNode();
pTmpNode=pLeftNode;
pLeftNode=pLeftNode->leftNode();
}
if(mlpRootNode==pTmpNode)mlpRootNode=pRootNode;
delete pTmpNode;
leaves(leaves()-1);
}
}
#endif
// ptrNode=operator[](0);
// Block<SmartPointer<TreeNode<T> > >::remove(int(0));