양방향 연결 리스트

    [Kotlin] Kotlin의 LinkedList 내부 구현 알아보고 사용법 한 번에 정리하기

    Kotlin의 LinkedList 알아보기 Kotlin은 Java의 LinkedList를 사용하며 다음의 특징을 가진다. 1. 첫 노드와 마지막 노드에 대한 포인터를 가지고 있다. /** * Pointer to first node. */ transient Node first; /** * Pointer to last node. */ transient Node last; 2. 크기에 대한 정보를 가지고 있어서 크기에 접근하기 위한 시간 복잡도가 O(1)이다. transient int size = 0; 3. Node는 이전 노드와 다음 노드에 대한 참조를 모두 가진다. private static class Node { E item; Node next; Node prev; Node(Node prev, E ele..

    LinkedList란 무엇인가? 단일 연결 리스트, 양방향 연결 리스트 간단하게 구현해보기

    LinkedList란 무엇인가? LinkedList는 각 노드에서 단방향으로 포인터를 가진 단일 연결 리스트(Singly Linked List)와 양방향으로 포인터를 가진 양방향 연결 리스트(Doubly Linked List)로 나뉜다. 단일 연결 리스트 단일 연결 리스트(Singly Linked List)는 각 노드에서 다음 노드에 대한 참조를 가지고 있어 다음 노드로 이동할 수는 있지만 이전 노드로 이동할 수는 없는 리스트이다. 이 때문에 이전 노드와 다음 노드의 참조를 모두 가지는 Double Linked List에 비해 메모리 공간을 약간 덜 차지하는 장점이 있으며, 특정 노드 삭제를 위해 삭제할 노드의 이전 노드의 포인터를 다음 노드로 변경하면 되기 때문에 삭제가 매우 간단하다. 하지만 여러 단..