스택(Stack) | 큐(Queue) | 덱 (Deque)

Jtiiin:K·2024년 5월 24일
post-thumbnail

스택 (Stack)

책을 쌓는 것처럼 차곡차곡 쌓아올린 형태의 자료구조

특징

  • 가장 마지막에 저장된 데이터가 가장 먼저 삭제됨
    (후입선출 LIFO, Last In First Out)
  • push : 삽입하는 연산
  • pop : 삭제하는 연산
  • peek(top) : 가장 최근에 저장된 데이터이자 먼저 삭제될 데이터
  • 스택은 크기를 고정해서 사용하기 때문에 넘치는 경우 stack overflow가 됨!

활용 예시

  • 브라우저의 뒤로가기
  • 역순 문자열 만들기
  • 재귀 함수
  • 실행 취소
  • 수식의 괄호 검사

큐 (Queue)

줄을 서서 기다리는 것과 같은 자료구조

특징

  • (정해진 곳에서 삽입, 삭제가 이루어지는 스택과 달리) 한쪽에선 삽입이, 다른 쪽에선 삭제가 양쪽으로 이루어짐
  • 먼저 들어온 자료가 먼저 삭제됨
    (선입선출 FIFO, First In First Out)
  • 리어 (rear) : 삽입 연산만 수행되는 곳
  • 프론트 (front) : 삭제 연산만 수행되는 곳
  • 인큐 (enQueue) : 리어에서 이루어지는 삽입 연산
  • 디큐 (deQueue) : 프론트에서 이루어지는 삭제 연산

활용 예시

  • 프린터의 인쇄 대기열
  • 은행 업무
  • 콜센터 고객 대기
  • 프로세스 관리

덱 (Deque)

Double Ended Queue 의 약자로 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조

특징

  • 스택과 큐의 일반적인 동작 방식을 모두 지원

활용 예시

  • 양방향 큐
profile
호기심 많은 귀차니즘의 공부 일기

0개의 댓글