반응형
본 글에서는 이전 Linked List 글에서 언급한 Node를 구현.
최대한 간단히 Node 클래스만을 이용해서 어떻게 node들이 연결될 수 있는지에 대해 설명.
Node 클래스 정의
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
다음의 2가지 인스턴스 속성을 가짐
(1) 값을 저장하는 data
(2) 다음 Node를 가리키는 next
여러 개의 노드를 생성 후 서로 연결
1. 3개의 Node 인스턴스 생성
first = Node(1)
second = Node(2)
third = Node(3)
2. first 노드의 next에 second 노드 인스턴스 할당
first.next = second
first.next 에 second 를 할당하면 진짜 first 노드가 second 노드와 연결된게 맞는지 확인하는 방법
print(type(first.next)) # <class '__main__.Node>
# first노드의 next를 통해서 second 노드의 값에 접근 가능
print(first.next.data) # 2
first 노드의 next를 통해 second 노드의 data에 접근 가능
3. second 노드의 next에 third 노드 할당
second.next = third
본 글에서는 Node들의 연결을 통해 한 노드에서 다른 노드에 접근가능함을 보여주는 내용이었음.
배열 대비 Linked List의 장점은 1) dynamic size 2) 삽입/삭제가 쉬움 인데 위의 내용을 통해 node를 계속 추가함으로써 dynamic size의 장점은 보여주었고 다음 글에서 삽입/삭제에 대한 내용을 다룸.
반응형
'자료구조' 카테고리의 다른 글
[자료구조] Linked List - (6) 노드 삭제 (0) | 2022.06.12 |
---|---|
[자료구조] Linked List - (5) 데이터 조회 (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 - (1) 개념 (0) | 2022.05.25 |