-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
해결됨
SearchToRemove와 RemoveNode가 분리되어야 할 필요가 있을까요?
24.03.03 06:51 작성 조회수 116
0
RemoveNode를 직접 먼저 구현한 후 강의를 듣게 되었는데요,
저는 RemoveNode 안에 Search하는 코드를 통합해서 짰는데 SearchToRemove가 RemoveNode를 실행시키기 위해서만 필요하다면 굳이 분리를 해야 할까 하는 의문이 들었습니다.
하나의 함수는 하나의 동작만 실행해야 해서 분리가 된 것일까요? 아니면 SearchToRemove가 나중에도 사용이 될 가능성이 있어서 분리된 것일까요?
제가 작성한 코드를 첨부합니다.
void RemoveNode(const char* pszName)
{
USERDATA* pTmp = g_pHeadNode;
USERDATA* previousNode = NULL;
bool isFound = false;
// 노드 찾기
while (pTmp != NULL)
{
if (strcmp(pTmp->name, pszName) == 0)
{
isFound = true;
break;
}
previousNode = pTmp;
pTmp = pTmp->pNext;
}
// 노드 찾기 실패
if (isFound == false)
{
printf("\"%s\" : Not Found, remove failed.\n", pszName);
return;
}
// 헤드인 경우
if (g_pHeadNode == pTmp)
{
g_pHeadNode = pTmp->pNext;
free(pTmp);
printf("\"%s\" : Found, remove successed.\n", pszName);
return;
}
// 헤드가 아닌경우
previousNode->pNext = pTmp->pNext;
free(pTmp);
printf("\"%s\" : Found, remove successed\n", pszName);
}
답변을 작성해보세요.
0
널널한 개발자
지식공유자2024.03.04
코드를 분리한 가장 큰 이유는 UI 코드와 자료구조 코드를 분리하기 위함입니다. 물론 재사용 가능성도 고려한 결과이기도 합니다. 감사합니다. 😄
답변 1