본문 바로가기

알고리즘 Algorithm/자료구조 Data structure

그 밖의 연결리스트들

원형 연결 리스트 (Circular LinkedList)

장점

  • 노드를 앞쪽과 뒤쪽에 추가하고 싶을 때 Tail 또는 Head 노드 하나만 있어도 추가가 가능하다.

  • 모든 노드를 여러번 호출할 수 있다.

  • 노드 추가 시 마지막 노드를 찾이위해 시간을 소비하지 않는다. 첫번째 노드의 before가 마지막 노드이기 때문이다.

단점

  • 노드 삭제 시 앞 노드를 가리키는 포인터가 필요하다.

양방향(이중) 연결 리스트(Doubly LinkedList)

장점

  • 삭제할 시 before포인터로 전 노드를 가리킬 필요가 없다.

  • 탐색 횟수가 반으로 감소한다. Head에 가까운 인덱스는 Head부터 Tail에 가까운 인덱스는 Tail부터 탐색하기 때문이다.

단점

  • 리스트 추가 시 메모리 사용량이 증가한다. 또한, 마지막 노드를 찾기 위해 O(n)의 시간을 사용한다.

위 사진의 모델이 정답은 아니다. 일반적인 모델이 있지만 Tail을 추가하는 등 변형을 하여 사용해도 된다.