_%EA%B5%AC%EC%A1%B0.png)
이중 연결 리스트를 활용하여 원형 이중 연결 리스트를 직접 구현해보았다.
이중 연결리스트의 구조에서 가장 처음과 마지막 노드가 서로 연결 되어있는 자료구조

# 원형 이중 링크드 리스트
class DCLinkedList:
    # D_C_L_List에서 쓸 노드
    class Node:
        def __init__(self, v, n=None, p=None):
            self.value = v  # 저장된 데이터
            self.next = n  # 다음 노드 가리키는 변수
            self.prev = p  # 이전 노드 가리키는 변수
    # D_C_L_List에서 필요한 변수
    def __init__(self):
        self.head = None  # 첫 생성시 내부에는 노드가 없음
        self.tail = None
        
##테스트
if __name__=="__main__":
    dcl = DCLinkedList()초기 구조는 이중 연결 리스트(doubly linked list)와 동일
삽입부분부터 달라짐
| next | prev | head | tail | 
|---|---|---|---|
| 다음에 연결된 노드를 가리키는 변수 | 이전의 노드를 가리키는 변수 | 맨 처음 노드를 가리키는 변수 | 맨 마지막 노드를 가리키는 변수 |