더북(TheBook)

size() 메서드는 훨씬 간단합니다. 단순히 d_size 값을 반환하면 됩니다. 데이터를 리스트의 맨 처음에 삽입하는 add_first() 메서드를 볼까요?

코드 4-5

    def add_first(self, data):
        new_node = Node(data) 
        new_node.next = self.head.next 
        new_node.prev = self.head 

        self.head.next.prev = new_node 
        self.head.next = new_node 
       
        self.d_size += 1 

새로운 노드를 만듭니다.

next는 더미 노드의 다음 노드, 즉 첫 번째 데이터 노드를 가리키도록 합니다.

prev는 리스트의 맨 앞 더미를 가리키도록 합니다.

첫 번째 데이터 노드의 prev가 새로운 노드를 가리키도록 하고

더미 노드의 next는 새로운 노드를 가리켜 새로운 노드가 삽입되었습니다.

데이터 개수를 하나 늘리는 것도 잊어서는 안 됩니다.

add_first 함수는 맨 앞의 더미 노드와 첫 번째 데이터 노드 사이에 새로운 노드를 삽입합니다. 그림으로 삽입 과정을 살펴보겠습니다.

그림 4-7은 새로운 노드를 만든 직후의 모습입니다.

▲ 그림 4-7 add_first( ) 1

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.