// education

단일 연결 리스트(Singly Linked List) 구조: 포인터 노드 연결, 삽입, 삭제 및 순회

메모리 상에 흩어져 있는 노드들을 포인터 참조로 연결하는 **단일 연결 리스트(Singly Linked List)**의 동작 원리와 파이썬 구현을 다룹니다.


1. 연결 리스트 용어 사전 (Glossary)


2. 파이썬 단일 연결 리스트 완벽 구현 코드

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class SinglyLinkedList:
    def __init__(self):
        self.head = None

    def append(self, data):
        new_node = Node(data)
        if not self.head:
            self.head = new_node
            return
        curr = self.head
        while curr.next:
            curr = curr.next
        curr.next = new_node

    def reverse(self):
        prev = None
        curr = self.head
        while curr:
            next_node = curr.next
            curr.next = prev
            prev = curr
            curr = next_node
        self.head = prev

    def display(self):
        elems = []
        curr = self.head
        while curr:
            elems.append(str(curr.data))
            curr = curr.next
        print(" -> ".join(elems) + " -> None")

sll = SinglyLinkedList()
sll.append(10)
sll.append(20)
sll.append(30)
print("원래 연결 리스트:")
sll.display()
sll.reverse()
print("역순 뒤집기 후 연결 리스트:")
sll.display()
← 이전선형 자료구조 - 단일·이중·원형 연결 리스트의 구조와 파이썬 구현 다음 →이진 트리(Binary Tree) 순회와 이진 힙(Binary Heap) 메커니즘