C++

[강의] 12월 5일 수업정리

k-codestudy 2024. 12. 6. 03:43

링크드 리스트의 삭제에 대한 부분의 수업을 들었다.

[ 주의 사항, 실제로 이런식으로 사용은 하지는 않는다. 그저 공부하는 형식으로 만들어져있다. ]

[ 어제 만든 코드에서 추가로 진행하므로 추가되는 코드만 적어놓을 예정 ]

 

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