컴퓨터 프로그래밍/자료구조

자료구조_링크드리스트_8_삽입연산추가

깝돌이 2020. 5. 19. 20:42

파라미터로 데이터 data를 받아서 링크드 리스트의 가장 앞에 데이터를 data로 갖는 새로운 노드를 추가시켜 주는 메소드를 작성합니다. 

def prepend(self, data):
    """링크드 리스트의 가장 앞에 데이터 삽입"""
    new_node = Node(data)  # 새로운 노드를 만든다
    
    # 링크드 리스트가 비었는지 확인
    if self.head is None:
        # 새 노드를 링크드 리스트의 유일한 노드로 만들어준다
        self.head = new_node
        self.tail = new_node
    else:
        new_node.next = self.head  # 새로운 노드의 다음 노드를 head 노드로 정해주고
        self.head = new_node  # 리스트의 head_node를 새롭게 삽입한 노드로 정해준다
# 새로운 링크드 리스트 생성
linked_list = LinkedList()

# 여러 데이터를 링크드 리스트 앞에 추가
linked_list.prepend(11)
linked_list.prepend(7)
linked_list.prepend(5)
linked_list.prepend(3)
linked_list.prepend(2)

print(linked_list)  # 링크드 리스트 출력

# head, tail 노드가 제대로 설정됐는지 확인
print(linked_list.head.data)
print(linked_list.tail.data)