Today
-
Yesterday
-
Total
-
  • Linked List 연결리스트
    Computer Science/자료구조 2023. 11. 20. 00:01

    • 데이터를 링크로 연결해서 관리
    • 자료의 순서는 정해져 있지만, 메모리 상의 연속성은 보장하지 않는다.

    장점

    • 데이터의 공간을 미리 할당할 필요가 없다.
    • 리스트의 길이가 가변적임 -> 데이터의 추가, 삭제가 용이하다.

    단점

    • 연결 구조 위한 별도의 공간 필요
    • 연결 정보 찾는데 시간이 필요 -> 상대적으로 접근 속도가 느리다.
    • 데이터의 추가, 삭제 시 앞뒤 데이터의 연결을 재구성 해줘야 한다.

    단방향 연결리스트 기본 구조

    • 사용되는 노드의 구조
    class Node {
    	T data;
        Node next;
        
        Node(){}
        Node(T data, Node next) {
        	this.data = data;
            this.next = next;
        }
    }
    • 일방통행적인 노드 연결 구조
    • 한 방향으로만 탐색이 가능함
      • ex. 노드 D 찾기 노드A (Head) -> 노드B -> 노드C -> 노드D
      • ex. 노드 F 찾기 노드A (Head) -> 노드B -> 노드C -> 노드D -> 노드E -> 노드F

    단방향 연결리스트 구현 코드

    양방향 연결리스트 기본 구조

    • 사용되는 노드의 구조
    class Node {
    	T data;
        Node next;
        Node prev;
        
        Node(){}
        Node(T data, Node next, Node prev) {
        	this.data = data;
            this.next = next;
            this.prev = prev;
        }
    }
    • 양방향으로 동작하는 노드 연결구조
    • 좌측으로의 탐색도, 우측으로의 탐색도 가능
      • ex. 노드 B 찾기 노드A (Head) -> 노드B
      • ex. 노드 Y 찾기 노드 Y <- 노드 Z (Tail) <- 노드A (Head)

    'Computer Science > 자료구조' 카테고리의 다른 글

    힙 Heap  (0) 2023.11.21
    트리  (0) 2023.11.21
    해시맵 HashMap  (0) 2023.11.20
    배열 array  (0) 2023.11.20
    Queue 큐  (0) 2023.11.20

Designed by Tistory / Custom by 얼거스