← 질문 목록
#231깊이 0

스택과 큐는 어떤 상황에서 구분해 쓰는가?

자료구조 · 알고리즘기초

데이터의 처리 순서가 최신순인지 선입선출순인지에 따라 결정한다. 가장 나중에 들어온 데이터를 먼저 처리해야 하면 스택을, 먼저 들어온 순서대로 처리해야 하면 큐를 쓴다.

기준스택 (Stack)큐 (Queue)
처리 순서LIFO (후입선출)FIFO (선입선출)
주요 연산push / popenqueue / dequeue
사용 사례되돌리기, 재귀 호출대기열, 프로세스 스케줄링

스택은 데이터의 '맥락'을 유지하는 데 유리하다. 함수 호출 스택처럼 현재 작업을 멈추고 새로운 작업을 수행한 뒤, 다시 이전 상태로 돌아와야 할 때 적합하다.

큐는 데이터의 '흐름'을 제어하는 데 유리하다. 요청이 몰릴 때 이를 순차적으로 처리하여 시스템의 부하를 조절하는 버퍼 역할로 주로 쓰인다.

두 구조 모두 삽입과 삭제가 O(1)시간 복잡도를 가진다. 하지만 큐를 배열로 구현할 때 삭제 연산 시 데이터 시프팅이 발생하므로, 원형 큐나 연결 리스트로 구현하면 요소를 옮기는 비용이 사라진다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

스택과 큐는 어떤 상황에서 구분해 쓰는가?
스택과 큐는 어떤 상황에서 구분해 쓰는가? · CS 길라잡이