더북(TheBook)

  6. 이제 새로운 원소(부하 직원)를 추가하는 삽입 함수를 만들겠습니다. 이 함수에서는 앞서 만들었던 find() 함수를 활용합니다.

    bool addSubordinate(const std::string& manager, const std::string& subordinate)
    {
        auto managerNode = org_tree::find(root, manager);
    
        if (!managerNode)
        {
            std::cout << manager << "을(를) 찾을 수 없습니다: " << std::endl;
            return false;
        }

        if (managerNode->first && managerNode->second)
        {
            std::cout << manager << " 아래에 " << subordinate << "을(를) 추가할 수 없습니 다." << std::endl;
            return false;
        }

        if (!managerNode->first)
            managerNode->first = new node {subordinate, NULL, NULL};
        else
            managerNode->second = new node {subordinate, NULL, NULL};

        std::cout << manager << " 아래에 " << subordinate << "을(를) 추가했습니다." << std::endl;

        return true;
    }
};

이 함수는 원소(부하 직원)를 정상적으로 삽입하면 true를, 실패하면 false를 반환합니다.

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