
알고리즘 공부 중 자료구조 Stack / Queue / Deque를 비교하였습니다.
| 구분 | Stack (스택) | Queue (큐) | Deque (덱) |
|---|---|---|---|
| 동작 원리 | LIFO (후입선출) | FIFO (선입선출) | LIFO + FIFO (양쪽 입출력 가능) |
| 삽입 위치 | 한쪽(top) | 뒤(rear) | 앞(front), 뒤(rear) 모두 가능 |
| 삭제 위치 | 한쪽(top) | 앞(front) | 앞(front), 뒤(rear) 모두 가능 |
| 제한 | 단방향, top에서만 조작 가능 | 단방향, 앞 → 뒤 흐름만 가능 | 제약 없음, 가장 유연 |
| 주요 메서드 | push, pop, peek | offer, poll, peek | offerFirst/Last, pollFirst/Last, peekFirst/Last |
한쪽(top)에서만 데이터 삽입/삭제 가능
LIFO (후입선출) → 나중에 들어간 게 먼저 나온다.
삽입/삭제 위치가 단방향(끝 하나)으로 고정됨.
뒤(rear)에서 삽입, 앞(front)에서 삭제
FIFO (선입선출) → 먼저 들어간 게 먼저 나온다.
데이터 흐름이 앞 → 뒤 단방향으로만 이동
양쪽(앞, 뒤)에서 삽입/삭제 모두 가능
LIFO + FIFO 모두 지원 (스택처럼도, 큐처럼도 사용 가능)
특별한 제약 없음 → 가장 유연한 자료구조
읽어주셔서 감사합니다.
What do you need to know about Queue in Data Structure?
[자료구조] 스택(Stack)/큐(Queue)/덱(Deque)
[Java/자료구조] 선형구조 - 큐(Queue), 스택(Stack), 덱(Deque) 이해하기 - 1
[자료구조] 스택과 큐, 데크(Stack, Queue, Deque)