linked list k번째 element 찾아서 지우기(c++)

조회수 2540회

Singly Linked List 에 주어진 List 의 element(e1,e2, ... , en)들을 chain 형식으로 node들을 연결하고 element (e1, ... , en)들을 저장하는 프로그램을 짜는 것입니다. (Singly Linked List의 마지막 노드의 Link는 반드시 Null이여야 합니다.)

문제가 위와 같은데 제가 아래와 같이 한번 짜봤습니다.

#include <iostream>
#include <stdlib.h>
    using namespace std;

    class LinkedList {
        struct Node {
            int x;
            Node *next;
        };
    public:
        LinkedList() {
            head = NULL; 
        }
        void addValue(int val) {
            Node *n = new Node();   
            n->x = val;            
            n->next = head;        

            head = n;               
        }
    private:
        Node *head;
    };

    int main() {
        LinkedList list;
        cout << " 입력할 LIst의 개수는?";
        int n;
        cin >> n;
        if (n <= 0) return 0;
        int *p = new int[n];
        for (int i = 0; i < n; i++) {
            list.addValue(p[i]);
        }
    }

위의 프로그램에서

k번째 노드를 삭제하는 프로그램

k번째 노드와 k+1번째 노드 사이에 새로운 노드를 추가하는 프로그램

을 짜는데

1.삭제하는 노드의 포인터값을 어떻게 받는지 모르겠습니다.

2.삭제 할때 delete를 쓰면 그 노드의 데이터 값이 완전히 지워지는 겁니까?

프로그램예시 좀 들어주셨으면 합니다. 공부에 참고 하겠습니다.

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)