파이썬(Python)/문법

linked list / 연결리스트 란? 파이썬

끄적끄적아무거나 2020. 12. 7. 18:22
반응형

 

링크드 리스트는 파이썬 동적 구조를 잘 설명해 주는 개념이다.

 

일반적인 정적인 언어들은 변수 선언을 통해 메모를 순차적으로 채워 간다.

 

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에 넣고 포인터를 통해 다음 노드로 이동하여 값을 넣는다.

 

꼬리가 없어 질때까지 진행하는 구조이다.

 

 

반응형