Guidelines

데이터λ₯Ό λ…Έλ“œλ‘œ μ—°κ²°ν•΄ κ΅¬μ„±ν•˜λŠ” 'μ—°κ²° 리슀트(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

Run
Generate

Execution Result