λ°μ΄ν°λ₯Ό λ Έλλ‘ μ°κ²°ν΄ ꡬμ±νλ 'μ°κ²° 리μ€νΈ(Linked List)'
μ°κ²° 리μ€νΈ(Linked List)λ λ°μ΄ν° μμλ€μ΄ λ Έλ(Node)λΌλ λ¨μλ‘ κ΅¬μ±λμ΄ μλ‘ μ°κ²°λμ΄ μλ ꡬ쑰μ λλ€.
κ° λ Έλλ λ°μ΄ν°μ ν¬μΈν°(Pointer)λ‘ κ΅¬μ±λμ΄ μμΌλ©°, ν¬μΈν°λ λ€μ λ Έλλ₯Ό κ°λ¦¬ν΅λλ€.
μ°κ²° 리μ€νΈμ ꡬ쑰μ νΉμ±
-
λ Έλ(Node)
: μ°κ²° 리μ€νΈμ κ° μμλ₯Ό λ ΈλλΌκ³ ν©λλ€. κ° λ Έλλ λ°μ΄ν°μ νλ λλ λ κ°μ 'ν¬μΈν°'(Pointer)λ₯Ό ν¬ν¨ν©λλ€. ν¬μΈν°λ λ€μ λ Έλ(λλ‘λ μ΄μ λ Έλ)λ₯Ό κ°λ¦¬ν΅λλ€. -
ν€λ(Head)
: μ°κ²° 리μ€νΈμ 첫 λ²μ§Έ λ Έλλ₯Ό κ°λ¦¬ν€λ ν¬μΈν°μ λλ€. -
ν μΌ(Tail)
: μ°κ²° 리μ€νΈμ λ§μ§λ§ λ Έλλ₯Ό κ°λ¦¬ν€λ ν¬μΈν°μ λλ€.
class Node: def __init__(self, data): self.data = data self.next = None class LinkedList: def __init__(self, data): self.head = Node(data) self.tail = self.head def append(self, data): node = Node(data) self.tail.next = node self.tail = node def print_all(self): node = self.head while node is not None: print(node.data) node = node.next linked_list = LinkedList(5) linked_list.append(12) linked_list.print_all() # 5 12
μ°κ²° 리μ€νΈ μ’ λ₯
-
λ¨μΌ μ°κ²° 리μ€νΈ(Singly Linked List)
: κ° λ Έλκ° λ€μ λ Έλλ§μ κ°λ¦¬ν€λ κ°μ₯ λ¨μν ννμ μ°κ²° 리μ€νΈμ λλ€. -
μ΄μ€ μ°κ²° 리μ€νΈ(Doubly Linked List)
: κ° λ Έλκ° μ΄μ λ Έλμ λ€μ λ Έλλ₯Ό λͺ¨λ κ°λ¦¬ν€λ ꡬ쑰λ‘, μλ°©ν₯ νμμ΄ κ°λ₯ν©λλ€. -
μν μ°κ²° 리μ€νΈ(Circular Linked List)
: λ§μ§λ§ λ Έλκ° μ²« λ²μ§Έ λ Έλλ₯Ό κ°λ¦¬ν€λ ννλ‘, μν ꡬ쑰λ₯Ό κ°μ΅λλ€.
μ°κ²° 리μ€νΈμ λ°°μ΄μ λΉκ΅
-
λ©λͺ¨λ¦¬ ν λΉ
: λ°°μ΄μ κ³ μ ν¬κΈ°μ μ°μμ μΈ λ©λͺ¨λ¦¬ 곡κ°μ μ¬μ©νλ λ°λ©΄, μ°κ²° 리μ€νΈλ νμμ λ°λΌ λμ μΌλ‘ λ©λͺ¨λ¦¬λ₯Ό ν λΉν©λλ€. -
μ½μ /μμ μ°μ°
: λ°°μ΄μμλ μ½μ κ³Ό μμ κ° λΉν¨μ¨μ μΌ μ μμΌλ, μ°κ²° 리μ€νΈμμλ μλμ μΌλ‘ κ°λ¨νκ³ λΉ λ¦ λλ€. -
μμ μ κ·Ό
: λ°°μ΄μ μΈλ±μ€λ₯Ό ν΅ν μμ μ κ·Όμ΄ κ°λ₯νμ§λ§, μ°κ²° 리μ€νΈλ μμ°¨μ μ κ·Όλ§ κ°λ₯ν©λλ€.
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result