4. 삽입 함수를 만들기 전에 먼저 find() 함수를 작성하겠습니다.
node* find(int value)
{
return find_impl(root, value);
}
private:
node* find_impl(node* current, int value)
{
if (!current)
{
std::cout << std::endl;
return NULL;
}
if (current->data == value)
{
std::cout << value << "을(를) 찾았습니다." << std::endl;
return current;
}
if (value < current->data) // value 값이 현재 노드 왼쪽에 있는 경우
{
std::cout << current->data << "에서 왼쪽으로 이동: ";
return find_impl(current->left, value);
}
// value 값이 현재 노드 오른쪽에 있는 경우
std::cout << current->data << "에서 오른쪽으로 이동: ";
return find_impl(current->right, value);
}
원소 검색은 재귀적으로 동작하기 때문에 실제 구현은 findImpl() 함수에 따로 작성했고, private으로 지정하여 외부에서 직접 호출할 수 없도록 설정했습니다.