링크드 리스트의 삭제에 대한 부분의 수업을 들었다.
[ 주의 사항, 실제로 이런식으로 사용은 하지는 않는다. 그저 공부하는 형식으로 만들어져있다. ]
[ 어제 만든 코드에서 추가로 진행하므로 추가되는 코드만 적어놓을 예정 ]
1. 중복된 데이터 삭제
void C_LINKEDLIST::remove(int nData)
{
S_NODE* pNode = m_pBegin;
S_NODE* pUP{};
while (pNode)
{
S_NODE* pNext = pNode->pNext;
if (pNode->nData == nData)
{
S_NODE* pDel = pNode;
pUP->pNext = pNext;
delete pDel;
}
else
pUP = pNode;
pNode = pNext;
}
}
2. 맨 처음 데이터 삭제 / 맨 마지막 데이터 삭제 ( pushBack을 해서 확인할것 )
void C_LINKEDLIST::remove(int nData)
{
S_NODE* pNode = m_pBegin;
S_NODE* pUP{};
while (pNode)
{
S_NODE* pNext = pNode->pNext;
if (pNode->nData == nData)
{
S_NODE* pDel = pNode;
if (pDel == m_pBegin) // 맨 처음꺼 삭제
m_pBegin = pNext;
else
pUP->pNext = pNext;
if (pDel == m_pEnd) // 맨 마지막꺼 삭제
m_pEnd = pUP;
delete pDel;
}
else
pUP = pNode;
pNode = pNext;
}
}
3. 하나일때 데이터 삭제
[ 나중에 할 것 ]
'C++' 카테고리의 다른 글
[강의] 12월 10일 수업정리 (0) | 2024.12.10 |
---|---|
[강의] 12월 6일 수업정리 (1) | 2024.12.06 |
[강의] 12월 4일 수업정리 (0) | 2024.12.05 |
[강의] 12월 3일 수업정리 (0) | 2024.12.04 |
[강의] 11월 29일 수업정리 (1) | 2024.11.29 |