반응형
2022.06.08 - [자료구조] - [자료구조] Linked List - (4) 노드 삽입 (at the front)
본 글에서는 Linked List에 삽입된 노드들의 데이터를 조회하는 메소드를 다룸.
Linked list에 연결된 노드들의 data를 조회
1) head가 가리키는 노드부터 순차적으로 출력하기 위해 cur 변수를 사용해 head가 참조하는 노드를 같이 참조
cur = self.head
2) cur 변수가 가리키는 노드의 data 출력
print(cur.data, end=" ") # 3
3) cur이 가리키는 노드를 연결된 노드로 이동
cur = cur->next
4) cur이 가리키는 노드의 data 출력
print(cur.data, end=" ") # 2
위 과정을 print 메소드로 묶어서 표현하면 아래와 같음
def print(self):
cur = self.head
while cur:
print(cur.data, end=" ")
cur = cur.next
print()
최종 코드
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
self.tail = None
# linked list 끝에 노드 추가
def append(self, new_data):
new_node = Node(new_data)
if self.head is None:
self.head = new_node
else:
self.tail.next = new_node
self.tail = new_node
# linked list 처음에 노드 추가
def push(self, new_data):
new_node = Node(new_data)
if self.head is None:
self.tail = new_node
else:
new_node.next = self.head
self.head = new_node
def print(self):
cur = self.head
while cur:
print(cur.data, end=" ")
cur = cur.next
print()
if __name__ == "__main__":
linked_list = LinkedList()
linked_list.print() # 출력 없음
linked_list.push(1)
linked_list.print() # 1
linked_list.push(2)
linked_list.print() # 2 1
linked_list.push(3)
linked_list.print() # 3 2 1
반응형
'자료구조' 카테고리의 다른 글
[자료구조] Stack (0) | 2022.10.04 |
---|---|
[자료구조] Linked List - (6) 노드 삭제 (0) | 2022.06.12 |
[자료구조] Linked List - (4) 노드 삽입 (at the front) (0) | 2022.06.08 |
[자료구조] Linked List - (3) 노드 삽입 (at the end) (0) | 2022.06.07 |
[자료구조] Linked List - (2) 간단 개념 구현 (0) | 2022.06.05 |