728x90
반응형
파이썬은 링크드 리스트 구현이 굉장히 쉬운편입니다.
class ListNode(object):
def __init__(self, value):
self.value = value
self.next = None
class ListHead(object):
def __init__(self):
self.head = None
node1 = ListNode(1)
ListHead.head = node1
node2 = ListNode(2)
node3 = ListNode(3)
node4 = ListNode(4)
node1.next = node2
node2.next = node3
node3.next = node4
노드 클래스를 만들어주고 리스트의 헤드를 넣을 헤드 클래스를 만들어줍니다.
각 노드를 생성해 준 후 첫번째 노드를 헤드에 넣습니다.
그리고 각 노드에 다음 노드를 연결해줍니다.
1(head) -> 2 -> 3 -> 4 -> None
파이썬의 클래스와 변수는 모두 객체이므로 포인터 개념으로 볼 수 있습니다. 즉, c언어에서 구조체와 포인터를 다뤄본 경험이 있는 분이라면 파이썬의 링크드 리스트를 이해하기 매우 쉬울 것입니다.
위에서 파이썬의 클래스는 모두 객체라고 했으므로 각각의 노드들도 모두 객체입니다. 그러므로 각각 포인터와 같이 주소값을 갖게 되고 node1.next = node2 는 node1.next의 포인터에 node2의 주소값을 넣게 됩니다.
각 노드는 다음 노드의 주소값을 가르키게 되고 위와 같은 링크드 리스트 구조가 됩니다.
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
알고리즘 개념 모음 (0) | 2024.03.09 |
---|---|
[1697] 숨바꼭질 (0) | 2020.11.08 |