
QuickHashIntSet 클래스의 delete 함수는 특정한 키를 삭제하는 함수입니다.
delete 함수에서 key가 존재하는지 확인하는 부분은 다음과 같이 구현됩니다.
#hostingforum.kr
c
bool QuickHashIntSet::delete(int key)
{
if (this->tableSize == 0) return false;
size_t index = this->hash(key) % this->tableSize;
QuickHashNode* node = this->table[index];
while (node != nullptr)
{
if (node->key == key)
{
this->table[index] = node->next;
this->size--;
return true;
}
node = node->next;
}
return false;
}
위 코드에서 key가 존재하는지 확인하는 부분은 `while` 루프 내에서 `node->key == key` 조건을 확인하는 부분입니다.
`node->key == key` 조건이 true가 되면, 해당 키가 존재하는 것이므로 `this->table[index] = node->next;`를 통해 해당 키를 삭제하고 `this->size--;`를 통해 사이즈를 줄입니다.
`node->key == key` 조건이 false가 되면, 해당 키가 존재하지 않으므로 `node = node->next;`를 통해 다음 노드로 이동하여 다시 확인합니다.
이 과정을 반복하여 모든 노드를 확인한 후 `node`가 nullptr가 되면, 해당 키가 존재하지 않는다는 것을 의미합니다.
따라서, `while` 루프 내에서 `node->key == key` 조건을 확인하는 부분이 key가 존재하는지 확인하는 부분입니다.
2025-08-13 06:38