카테고리 없음

[자료구조] Stack과 Queue의 차이점은?

카슈밀 2025. 2. 16. 01:11
반응형

StackQueue는 모두 데이터를 저장하는 자료 구조이지만, 데이터의 삽입과 삭제 방식에서 큰 차이가 있습니다.

1. Stack (스택)

  • 동작 방식: 후입선출 (LIFO, Last In First Out) 방식으로 동작합니다. 즉, 가장 나중에 삽입된 데이터가 먼저 삭제됩니다.
  • 주요 연산:
    • push: 데이터를 스택에 삽입합니다.
    • pop: 스택에서 가장 최근에 삽입된 데이터를 삭제하고 반환합니다.
    • peek: 스택의 가장 위에 있는 데이터를 삭제하지 않고 확인합니다.
  • 사용 예시:
    • 함수 호출의 추적(재귀 호출 등)
    • 웹 브라우저의 뒤로 가기 기능 (방문한 페이지를 스택처럼 관리)
  • 특징:
    • 삽입과 삭제가 항상 스택의 맨 위에서만 이루어집니다.
    • LIFO 방식으로, 가장 마지막에 들어온 데이터가 가장 먼저 나옵니다.

2. Queue (큐)

  • 동작 방식: 선입선출 (FIFO, First In First Out) 방식으로 동작합니다. 즉, 가장 먼저 삽입된 데이터가 먼저 삭제됩니다.
  • 주요 연산:
    • enqueue: 데이터를 큐에 삽입합니다.
    • dequeue: 큐에서 가장 먼저 삽입된 데이터를 삭제하고 반환합니다.
    • peek: 큐의 가장 앞에 있는 데이터를 삭제하지 않고 확인합니다.
  • 사용 예시:
    • 작업 스케줄링 (프린터 대기열, CPU 작업 대기열 등)
    • BFS(너비 우선 탐색) 알고리즘
  • 특징:
    • 삽입은 큐의 에서 이루어지고, 삭제는 큐의 에서 이루어집니다.
    • FIFO 방식으로, 먼저 들어온 데이터가 먼저 나옵니다.

3. 차이점 요약

Stack (스택) Queue (큐)

동작 방식 후입선출 (LIFO) 선입선출 (FIFO)
삽입 위치 맨 위에 삽입 맨 뒤에 삽입
삭제 위치 맨 위에서 삭제 맨 앞에서 삭제
사용 예시 함수 호출 추적, 웹 브라우저 뒤로 가기 작업 스케줄링, BFS 탐색

4. 예시

  • Stack: 웹 브라우저의 방문 기록(뒤로 가기), 수식 계산(후위 표기법), 재귀 함수의 호출 스택 등
  • Queue: 프린터 대기열, 고객 서비스 대기줄, 프로세스 스케줄링 등

이처럼 Stack은 나중에 들어온 것이 먼저 나가는 구조, Queue는 먼저 들어온 것이 먼저 나가는 구조로, 용도에 맞게 각각 활용됩니다.

728x90