반응형
링크드 리스트는 파이썬 동적 구조를 잘 설명해 주는 개념이다.
일반적인 정적인 언어들은 변수 선언을 통해 메모를 순차적으로 채워 간다.
linked list 는 본인의 값과 다음 노드를 알려주는 포인터를 지녀서 메모리에서 연속적으로 사용되지 않고 포인터로 연결된 형태로 사용이 가능하다.
아래 예제를 통해 이해해 보자.
코드>>
class linked_node:
def __init__(self, x):
self.val = x
self.next = None
class node_value_extract:
def extract(self, linked_n):
a_var = []
node = linked_n
# 리스트 변환
while node is not None:
a_var.append(node.val)
node = node.next
print(a_var)
node1 = linked_node(1)
node2 = linked_node(2)
node3 = linked_node(3)
node1.next = node2
node2.next = node3
node_end = node_value_extract()
node_end.extract(node1)
print("#################")
node_end.extract(node2)
print("#################")
node_end.extract(node3)
결과>>
[1, 2, 3]
#################
[2, 3]
#################
[3]
주석>>
linked_node 에서는 현재 노드의 값과 다음 노드를 가리키는 포인터 값을 가지게 된다.
node_value_extract 는 노드에 연결된 값들을 찾아서 list에 넣고 포인터를 통해 다음 노드로 이동하여 값을 넣는다.
꼬리가 없어 질때까지 진행하는 구조이다.
반응형
'파이썬(Python) > 문법' 카테고리의 다른 글
파이썬 functools reduce 사용법 (0) | 2020.12.09 |
---|---|
파이썬 deque 사용하는 이유 / popleft (4) | 2020.12.08 |
파이썬 typing모듈 왜 사용하나? , mypy 검사 (0) | 2020.12.07 |
파이썬 sys.getsizeof 변수 크기/사이즈 확인 (0) | 2020.12.04 |
if in 구문, for in 구문 (0) | 2020.12.03 |