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를 반환합니다.