연결 리스트는 데이터 요소가 노드로 이루어져 있고, 각 노드가 다음 노드에 대한 참조를 갖는 선형 데이터 구조입니다. 연결 리스트는 단일 연결 리스트(Singly Linked List)와 이중 연결 리스트(Doubly Linked List), 원형 연결 리스트(Circular Linked List) 등 여러 변형이 있습니다.
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
return
last_node = self.head
while last_node.next:
last_node = last_node.next
last_node.next = new_node
def print_list(self):
cur_node = self.head
while cur_node:
print(cur_node.data)
cur_node = cur_node.next
llist = LinkedList()
llist.append(1)
llist.append(2)
llist.append(3)
llist.append(4)
llist.print_list()
연결 리스트는 다양한 형태와 활용 방안을 가지고 있으며, 특히 삽입과 삭제가 빈번한 경우나 데이터의 크기가 동적으로 변하는 경우에 유용하게 사용할 수 있습니다. 데이터 구조와 알고리즘을 공부하는 과정에서 꼭 이해하고 있어야 하는 중요한 개념 중 하나입니다.