본문 바로가기
카테고리 없음

연결 리스트(LinkedList) 구현하기 (C++)

by kangs' tong 2023. 11. 16.

연결 리스트(LinkedList) 구현하기 (C++)

연결 리스트는 데이터를 노드(Node)들로 구성된 순서대로 저장하는 자료구조입니다. 각 노드는 자신의 데이터를 가지고 있고, 다음 노드를 가리키는 포인터가 있습니다. 이 포스팅에서는 C++언어를 사용하여 연결 리스트를 구현하는 방법에 대해 알려드리겠습니다.

노드(Node) 구현하기

먼저 연결 리스트의 노드 구조를 정의해야 합니다. 각 노드는 데이터를 저장하는 변수와 다음 노드를 가리키는 포인터를 가지고 있어야 합니다. 아래는 노드를 구현하는 예시입니다.

struct Node {
    int data;
    Node* next;
};

위의 예시에서는 int형 데이터를 저장하는 data 변수와 다음 노드를 가리키는 next 포인터를 정의했습니다.

연결 리스트(LinkedList) 구현하기

이제 실제로 연결 리스트를 구현해보겠습니다. 연결 리스트는 노드들을 연결하여 데이터를 저장하는데 사용되는 자료구조입니다. 이때, 연결 리스트는 첫 번째 노드를 가리키는 head 포인터를 가지고 있어야 합니다. 아래는 연결 리스트를 구현하는 예시입니다.

class LinkedList {
private:
    Node* head;
public:
    LinkedList() {
        head = NULL;
    }

    void insert(int data) {
        Node* newNode = new Node();
        newNode->data = data;
        newNode->next = NULL;

        if (head == NULL) {
            head = newNode;
        } else {
            Node* current = head;
            while (current->next != NULL) {
                current = current->next;
            }
            current->next = newNode;
        }
    }

    void display() {
        if (head == NULL) {
            cout << "LinkedList is empty" << endl;
        } else {
            Node* current = head;
            while (current != NULL) {
                cout << current->data << " ";
                current = current->next;
            }
            cout << endl;
        }
    }

    // 삭제 연산 등 다른 연산들도 추가할 수 있음
};

위의 예시에서는 LinkedList 클래스를 정의하고, head 포인터를 가지고 있습니다. insert 함수를 이용하여 새로운 데이터를 연결 리스트에 추가할 수 있으며, display 함수를 이용하여 연결 리스트의 내용을 출력할 수 있습니다.

전체 내용 정리

이렇게 연결 리스트를 구현해보았습니다. 연결 리스트는 노드들을 연결하는 방식으로 데이터를 저장하는 자료구조입니다. 각 노드는 데이터와 다음 노드를 가리키는 포인터를 가지고 있습니다. 이를 통해 데이터의 삽입, 삭제, 검색 등의 연산을 효율적으로 처리할 수 있습니다.

정리하자면, 연결 리스트는 노드들로 구성되어 데이터를 저장하는 자료구조입니다. C++언어를 사용하여 연결 리스트를 구현하려면 노드를 구조체로 정의하고, 연결 리스트를 클래스로 정의해야 합니다. 연결 리스트는 데이터의 추가, 출력 등 다양한 연산을 처리할 수 있습니다.

댓글