더북(TheBook)

  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으로 지정하여 외부에서 직접 호출할 수 없도록 설정했습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.