728x90


프로그래밍에서 데이터를 효율적으로 저장하고 관리하기 위해 다양한 자료구조가 사용됩니다. 그중에서도 **큐(Queue), 스택(Stack)**은 많이 사용되는 대표적인 자료구조입니다. 이번 글에서는 이 두 가지 자료구조의 개념과 차이점을 알아보고, 실제 사용 예시까지 살펴보겠습니다.

1. 큐(Queue)란?

**큐(Queue)**는 FIFO(First In, First Out, 선입선출) 구조를 따르는 자료구조입니다. 즉, 먼저 들어온 데이터가 먼저 나가는 방식으로 동작합니다. 위 이미지같이 버스를 타기위해 줄 선 사람들처럼 먼저 기다린사람이 먼저 나가게 됩니다. 

✅ 큐의 특징

  • 데이터를 순서대로 처리할 때 유용
  • 먼저 들어온 데이터가 먼저 나감
  • 줄을 서는 것과 같은 개념

🛠 큐의 주요 연산

연산설명
enqueue() 큐의 뒤(rear)에 데이터 추가
dequeue() 큐의 앞(front)에서 데이터 제거

📌 큐의 사용 예시

  1. 프린터 작업 대기열: 먼저 요청한 인쇄 작업이 먼저 실행됨
  2. 네트워크 패킷 처리: 먼저 도착한 데이터 패킷이 먼저 처리됨
  3. BFS(너비 우선 탐색) 알고리즘: 그래프 탐색에 사용

2. 스택(Stack)란?

**스택(Stack)**은 LIFO(Last In, First Out, 후입선출) 구조를 따르는 자료구조입니다. 즉, 나중에 들어온 데이터가 먼저 나가는 방식으로 동작합니다. 예를 들어 쌓여있는 접시같은 구조죠. 가장 늦게 쌓인 접시가 가장 먼저 나가게 되는것처럼요.

✅ 스택의 특징

  • 마지막에 들어온 데이터가 먼저 나감
  • 책을 쌓아두는 것과 같은 개념

🛠 스택의 주요 연산

연산설명
push() 스택의 맨 위(top)에 데이터 추가
pop() 스택의 맨 위(top) 데이터 제거

📌 스택의 사용 예시

  1. 함수 호출(콜 스택): 함수가 호출될 때 마지막에 호출된 함수가 먼저 종료됨
  2. 웹 브라우저의 뒤로 가기 기능: 가장 최근 방문한 페이지부터 차례로 돌아감
  3. DFS(깊이 우선 탐색) 알고리즘: 그래프 탐색에서 사용

 


3. 큐, 스택의 차이점 비교

자료구조동작 방식주요 연산사용 예시
큐(Queue) FIFO(선입선출) enqueue(), dequeue() 프린터 대기열, BFS
스택(Stack) LIFO(후입선출) push(), pop() 함수 호출, DFS

4. 마무리

큐, 스택은 각각 특징과 동작 방식이 다르며, 사용되는 상황도 다릅니다.

  • 는 순차적으로 처리해야 하는 경우,
  • 스택은 마지막에 저장한 데이터를 먼저 처리해야 하는 경우,
728x90

+ Recent posts