Basics/For KR

파이썬의 연결리스트: 노드가 주소를 가리킨다고요?

funczun 2024. 11. 12. 11:12
노드

 연결리스트에서 노드는 데이터의 한 단위를 의미한다. 각 노드는 메모리에서 별도의 위치를 차지하기 때문에 노드마다 고유한 메모리 주소가 할당되어 있다. 노드의 구조를 살펴보면 해당 노드가 저장한 데이터와 다음 노드를 가리키는 포인터(next) 요소를 찾아볼 수 있다.

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

 

노드 생성

 왼쪽 노드의 메모리 주소가 "1202243114115"이고 오른쪽 노드의 메모리 주소가 "1202243112121"이라고 가정하자. "zun"이라는 데이터를 지닌 왼쪽 노드의 포인터가 오른쪽 노드의 메모리 주소인 "1202243112121"를 저장한다면 어떨까? 두 노드가 링크를 통해 하나의 연결리스트가 된다.

node1 = Node("zun")
node2 = Node([1, 2])

 

노드 연결: 연결리스트

 이번 예시의 경우 왼쪽 노드가 헤드(head)가 되며, 오른쪽 노드는 테일(tail)이 된다. 마지막 노드인 테일의 포인터가 가리키는 다음 노드가 없으므로, 해당 노드의 next 속성은 메모리 주소가 아닌 None으로 설정되어 있다.

zun -> [1, 2] -> None