C++ 문제풀이

22.06.08 숙제 풀이 (리스트 중간 삽입, 중간 삭제)

지노링 2022. 6. 9. 17:09
728x90

중간 삽입

 void Insert(T data, int idx)
    {
        if (idx == 0)
        {
            PushFront(data); 
            return;
        }

        OnePathNode<T>* iter = head;
        OnePathNode<T>* iterNext;


        for (int i = 0; i < (idx - 1); ++i)
        {
            iter = iter->next;
        }
        iterNext = iter->next;

        OnePathNode<T>* temp = new OnePathNode<T>;
        temp->value = data;
        temp->next = iterNext;

        iter->next = temp;

    }

 

중간 삭제

    void Erase(int idx)
    {
        if (idx == 0)
        {
            PopFront();
            return;
        }

        OnePathNode<T>* iter = head;
        OnePathNode<T>* iterNext;


        for (int i = 0; i < (idx - 1); ++i)
        {
            iter = iter->next;
        }
        iterNext = iter->next;

        iter->next = iterNext->next;
        delete iterNext;
    }
728x90