1 분 소요

설명

  • 연결 리스트(Linked List)

  • 설명 : 연결 리스트는 각 요소가 데이터와 다음 요소를 가리키는 포인터로 이루어진 노드들이 연결된 자료구조입니다. 각 노드는 데이터와 다음 노드를 가리키는 링크로 이루어져 있습니다.

  • 구현 방법 : 각 요소가 데이터와 다음 요소를 가리키는 포인터로 이루어진 노드들이 연결됩니다. 일반적으로 클래스나 구조체를 사용하여 노드를 정의하고, 포인터를 이용하여 노드들을 연결합니다.

  • 사용 사례 : 동적으로 크기가 변하는 데이터 구조가 필요한 경우, 중간 삽입/삭제가 빈번한 경우, 메모리 효율이 중요한 경우 등에 사용됩니다.

  • 장단점 :
    • 장점: 동적으로 크기가 조절 가능하며, 중간 삽입/삭제가 빠르고 효율적
    • 단점: 순차적으로 요소에 접근해야 하므로 접근 속도가 느림, 추가적인 메모리 사용 (포인터)

연결 리스트 시뮬레이션

연결 리스트 시뮬레이션

연결 리스트 시뮬레이션

코드로 알아보기

  • Java

    ```Java class ListNode { int data; ListNode next;

    public ListNode(int data) { this.data = data; this.next = null; } }

public class MyLinkedList { private ListNode head; private int size;

public MyLinkedList() {
    head = null;
    size = 0;
}

public void add(int element) {
    ListNode newNode = new ListNode(element);
    if (head == null) {
        head = newNode;
    } else {
        ListNode current = head;
        while (current.next != null) {
            current = current.next;
        }
        current.next = newNode;
    }
    size++;
}

public int get(int index) {
    if (index < 0 || index >= size)
        throw new IndexOutOfBoundsException();
    ListNode current = head;
    for (int i = 0; i < index; i++) {
        current = current.next;
    }
    return current.data;
}

public int size() {
    return size;
} } ```

댓글남기기