컴퓨터 과학

[자료구조] 스택과 큐

Data Jun 2025. 12. 7. 13:05

스택(Stack)과 큐(Queue)는 프로그래밍에서 매우 자주 사용되는 기본 자료구조입니다.
두 구조 모두 데이터를 저장하고 꺼내는 방식에 차이가 있으며, 상황에 따라 적절히 선택해서 사용해야 합니다.

 

1. 스택(Stack) – 한쪽 끝에서만 삽입/삭제가 가능한 구조

스택은 후입선출(LIFO, Last In First Out) 방식으로 동작하는 자료구조입니다.
즉, 나중에 들어간 데이터가 먼저 나온다는 특징을 갖습니다.

 

1️⃣  스택의 핵심 연산

  • 푸시(Push) : 데이터를 스택의 맨 위에 넣는 연산
  • 팝(Pop) : 스택의 맨 위에서 데이터를 꺼내는 연산

아래 그림처럼 수직으로 쌓아 올린 형태로 이해하면 쉽습니다.

  • Push → 위로 쌓기
  • Pop → 위에서부터 꺼내기

2️⃣ 스택이 유용하게 쓰이는 상황

  • “되돌리기(Undo)” 기능 만들 때
  • 웹 브라우저의 “뒤로 가기” 기능
  • 최근 저장한 데이터를 가장 먼저 활용해야 할 때

 

2. 큐(Queue) – 한쪽에서 넣고, 반대쪽에서 꺼내는 구조

큐는 선입선출(FIFO, First In First Out) 방식으로 동작합니다.
즉, 먼저 들어온 데이터가 가장 먼저 나오는 구조입니다.

현실에서 줄을 서는 방식(먼저 온 사람이 먼저 들어감)과 동일합니다.

 

1️⃣ 큐의 핵심 연산

  • 인큐(Enqueue) : 큐의 한쪽 끝(뒤쪽)에 데이터를 삽입
  • 디큐(Dequeue) : 큐의 반대쪽 끝(앞쪽)에서 데이터를 꺼냄

2️⃣  큐가 유용하게 쓰이는 상황

  • 프린터 작업 대기열
  • 운영체제의 프로세스 스케줄링
  • 네트워크 패킷 처리
  • 순서대로 데이터를 처리해야 할 때

 

정리하면

 

스택과 큐는 가장 기본적이지만 매우 중요한 자료구조입니다.

  • 스택은 최근 데이터를 먼저 사용해야 할 때
  • 는 순서대로 데이터를 처리해야 할 때

각 구조의 특징을 이해하면 프로그램의 흐름을 보다 직관적이고 효율적으로 설계할 수 있습니다.