Stack vs. Queue

스택(Stack)과 큐(Queue)는 컴퓨터 과학에서 널리 사용되는 선형 자료구조로, 데이터의 저장 및 처리 방식에서 차이가 있다.

스택(Stack)

스택은 후입선출(LIFO, Last-In First-Out) 방식의 자료구조로, 가장 마지막에 삽입된 데이터가 가장 먼저 제거된다.
데이터의 삽입과 삭제는 모두 스택의 **탑(top)**에서 이루어진다.

  • 주요 연산:
    • 삽입(Push): 데이터를 스택의 탑에 추가한다.
    • 삭제(Pop): 스택의 탑에 있는 데이터를 제거하고 반환한다.
    • 탑 확인(Peek): 스택의 탑에 있는 데이터를 제거하지 않고 확인한다.
    • 비어있는지 확인(IsEmpty): 스택이 비어 있는지 여부를 확인한다.

큐(Queue)

큐는 선입선출(FIFO, First-In First-Out) 방식의 자료구조로, 가장 먼저 삽입된 데이터가 가장 먼저 제거된다.
데이터의 삽입은 **후단(Rear)**에서, 삭제는 **전단(Front)**에서 이루어진다.

  • 주요 연산:
    • 삽입(Enqueue): 데이터를 큐의 후단에 추가한다.
    • 삭제(Dequeue): 큐의 전단에 있는 데이터를 제거하고 반환한다.
    • 전단 확인(Peek/Front): 큐의 전단에 있는 데이터를 제거하지 않고 확인한다.
    • 비어있는지 확인(IsEmpty): 큐가 비어 있는지 여부를 확인한다.

스택과 큐의 비교

특징스택 (Stack)큐 (Queue)
접근 방식후입선출 (Last In, First Out; LIFO)선입선출 (First In, First Out; FIFO)
기본 연산push, pop, peekenqueue, dequeue, peek
데이터 삽입 위치최상단 (Top)뒤쪽 (Rear)
데이터 삭제 위치최상단 (Top)앞쪽 (Front)
구현 방식배열, 연결 리스트배열, 연결 리스트
응용 분야함수 호출, 역순 처리, undo/redo 기능작업 스케줄링, 실시간 데이터 처리, 브라우저 히스토리 관리

참고 및 출처