FindRecord(TKey k, PTTreeNode pNode)
{
if (pNode != NULL) // лист
{
if (pNode->Key < k) // вправо
pNode = FindRecord(k, pNode->Right);
if (pNode->Key > k) // влево
pNode = FindRecord(k, pNode->Left);
}
return pNode;
}
Введение барьера.
FindRecord(TKey k, PTTreeNode pNode)
{
if (pNode->Key < k) // вправо
pNode = FindRecord(k, pNode->Right);
if (pNode->Key > k) // влево
pNode = FindRecord(k, pNode->Left);
return (pNode == pBarrier) ? NULL : pNode;
}
void TTreeTable ::InsRecord(TKey k, PTDatValue pVal)
{ // вставить запись
if (IsFull())
SetRetCode(TabFull);
else if (FindRecord(k) != NULL)
SetRetCode(TabRecDbl);
else
{
SetRetCode(TabOK);
ppRef = new TTreeNode(k, pVal);
DataCount++;
}
}