리스트 링크드 기본 구조와 용어
-노드 : 데이터 저장 단위로 구성
-포인터 : 각 노드 안에서, 다음이나 이전의 노드와의 연결 정보를 가지고 있는 공간
일반적인 형태
class Node:
def __init__(self, data):
self.data = data
self.next = None
위의 코드를 아래와 같이 작성할 수 있다.
class Node:
def __init__(self, data, next = None):
self.data = data
self.next = next
위에와 차이는 내가이제 next를 내비두고 data 인자하나만 넣어도 next에 알아서 None이 들어가준다!
이해가 됐다면 시작해보자!
node1 = Node(1)
node2 = Node(2)
node1.next = node2 # 노드 1 다음 노드2 연결해준 코드
head = node1 # 얘가 우리가만들고자하는 링크드리스트의 첫번째임은 선언해야지
# 링크드리스트로 데이터 추가하기
class Node:
def __init__(self, data, next = None):
self.data = data
self.next = next
#일단은 더해주는거 따로 만들어보기
def add(data):
node = head
while node.next: #노드의 넥스트가 있니?
node = node.next # 있으면 위에 노드가 바뀌겠지? 없으면 그게 마지막노드니 와일문 끝인거고
node.next = Node(data) # 클래스에 다시 data인자를 넣어준거야
테스트 해보도록 한다.
node1 = Node(1)
head = node1
for i in range(2,10):
add(i)
#출력해봐!
node = head
while node.next:
print(node.data)
node = node.next
print(node.data)