← 질문 목록
#189깊이 0
스택과 큐의 가장 큰 차이는 무엇인가?
자료구조 · 알고리즘기초
데이터가 나가는 순서의 차이다. 스택은 마지막에 들어온 것이 먼저 나가고, 큐는 먼저 들어온 것이 먼저 나간다.
| 기준 | 스택 | 큐 |
|---|---|---|
| 처리 순서 | LIFO (후입선출) | FIFO (선입선출) |
| 입출력 지점 | 한쪽 끝에서만 가능 | 입구와 출구가 다름 |
스택은 되돌리기(Undo)나 함수 호출 스택처럼 가장 최근의 상태를 기억해야 할 때 쓴다. 반면 큐는 프로세스 스케줄링이나 프린터 대기열처럼 순서대로 처리해야 할 때 적합하다.
두 구조 모두 삽입과 삭제의 시간 복잡도가 O(1)이다. 하지만 큐를 배열로 구현할 때 앞쪽 데이터를 지우면 나머지 데이터를 당겨야 하는 비용이 발생한다. 이를 위해 원형 큐를 주로 사용한다.
추천 꼬리질문
관련 질문
- 스택과 큐는 각각 어떤 상황에서 선택해야 하는가?자료구조 · 알고리즘스택과 큐의 선택 기준을 결정하기 위해서는 두 자료구조의 가장 큰 차이점을 이해해야 하므로 동일한 기초 개념을 공유한다.
- 스택과 큐는 어떤 상황에서 구분해 쓰는가?자료구조 · 알고리즘스택과 큐의 차이점을 이해하는 것은 사용 상황을 구분하는 기초 개념이다.
- 우선순위 큐를 힙으로 구현하는 이유는 무엇인가?자료구조 · 알고리즘우선순위 큐와 일반 큐 모두 큐(Queue)라는 추상 자료형의 변형 및 구현체라는 공통점을 가진다.
- 프로세스와 스레드의 핵심 차이는 무엇인가?운영체제
- 해시 충돌을 해결하는 두 방식의 차이는 무엇인가?자료구조 · 알고리즘