
스택 기본형 코드
- 스택(stack): LIFO(Last In, First Out) 방식, 주로 리스트를 사용하여 구현.
class Stack: def __init__(self): self.items = [] def is_empty(self): return len(self.items) == 0 def push(self, item): self.items.append(item) def pop(self): if self.is_empty(): return None return self.items.pop() def peek(self): if self.is_empty(): return None return self.items[-1] def size(self): return len(self.items)
큐 기본형 코드
- 큐(queue): FIFO(First In, First Out) 방식, 주로 collections 모듈의 deque를 사용하여 구현.
from collections import deque class Queue: def __init__(self): self.items = deque() def is_empty(self): return len(self.items) == 0 def enqueue(self, item): self.items.append(item) def dequeue(self): if self.is_empty(): return None return self.items.popleft() def size(self): return len(self.items)
힙 기본형 코드
- 힙(heap): 완전 이진 트리 기반의 자료구조, heapq 모듈을 사용하여 구현.
import heapq class MinHeap: #원소를 추가하거나 제거할 때 반전하면 최대 힙(-item) def __init__(self): self.heap = [] def push(self, item): heapq.heappush(self.heap, item) def pop(self): if len(self.heap) == 0: return None return heapq.heappop(self.heap) def peek(self): if len(self.heap) == 0: return None return self.heap[0] def size(self): return len(self.heap)