원형 연결 리스트 (Circular LinkedList)
장점
노드를 앞쪽과 뒤쪽에 추가하고 싶을 때 Tail 또는 Head 노드 하나만 있어도 추가가 가능하다.
모든 노드를 여러번 호출할 수 있다.
노드 추가 시 마지막 노드를 찾이위해 시간을 소비하지 않는다. 첫번째 노드의 before가 마지막 노드이기 때문이다.
단점
- 노드 삭제 시 앞 노드를 가리키는 포인터가 필요하다.
양방향(이중) 연결 리스트(Doubly LinkedList)
장점
삭제할 시 before포인터로 전 노드를 가리킬 필요가 없다.
탐색 횟수가 반으로 감소한다. Head에 가까운 인덱스는 Head부터 Tail에 가까운 인덱스는 Tail부터 탐색하기 때문이다.
단점
- 리스트 추가 시 메모리 사용량이 증가한다. 또한, 마지막 노드를 찾기 위해 O(n)의 시간을 사용한다.
위 사진의 모델이 정답은 아니다. 일반적인 모델이 있지만 Tail을 추가하는 등 변형을 하여 사용해도 된다.
'알고리즘 Algorithm > 자료구조 Data structure' 카테고리의 다른 글
큐 (Queue) - 원형 큐 (Circular Queue) (0) | 2021.02.07 |
---|---|
스택(Stack) (0) | 2021.02.01 |
단순 연결 리스트 (LinkedList) (0) | 2021.01.31 |
추상 자료형 (ADT; Abstract Data Type) (0) | 2021.01.27 |
탐색 방법 (Search) (0) | 2021.01.26 |