일지
알고리즘...68
niamdank
2021. 10. 13. 13:14
B 트리 검색 함수 구현
기존 배열에서 포인터 방식으로 구현 변경. 기존 방식보다 가독성 측면에서 더 나은 것 같다.
BTree::Exists
/// <summary>
/// B 트리를 확인하여 주어진 값이 트리에 존재하는지 여부를 반환한다.
/// </summary>
/// <param name="data">확인할 값</param>
/// <returns>존재 여부</returns>
bool BTree::Exists(int data)
{
BTreeNode* node{ _root };
while (node != nullptr)
{
BTreeNodeKey* key{ node->keyRoot };
while (key != nullptr)
{
if (key->value == data)
{
return true;
}
if (data < key->value)
{
node = key->left;
break;
}
else if (key->value < data)
{
if (key->next == nullptr || data < key->next->value)
{
node = key->right;
break;
}
}
key = key->next;
}
}
return false;
}