배열은 순차적으로 연결된 공간에 데이터를 나열하는 데이터 구조
링크드 리스트는 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 데이터 구조
링크드 리스트 기본 구조와 용어
🌟 Visualgo 사이트에서 직접 시연해보며 이해해볼 수 있음!
➡️ https://visualgo.net/en/list
class Node:
def __init__(self, data, next=None):
self.data = data
self.next = next
Node와 Node 연결하기 (포인터 활용)
node1 = Node(1)
node2 = Node(2)
node1.next = node2
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)
링크드 리스트 데이터 출력하기(검색하기)
node = head
while node.next:
print(node.data)
node = node.next
print (node.data)
(출처: wikipedia, https://en.wikipedia.org/wiki/Linked_list)
node = head
while node.next:
print(node.data)
node = node.next
print (node.data)
node3 = Node(1.5)
node = head
search = True
while search:
if node.data == 1:
search = False
else:
node = node.next
node_next = node.next
node.next = node3
node3.next = node_next
node = head
while node.next:
print(node.data)
node = node.next
print (node.data)
#1
#1.5
#2
#3
#4
#5
#6
#7
#8
#9
-> 해보기!!