[자료구조] 스택(Stack)과 큐(Queue)에 대해서 알아보자!

2021. 8. 2. 14:28·❕Data structure
-->

📌 스택(Stack)이란 무엇일까? 

 

LIFO(Last In First Out)

 

스택(Stack)은 후입선출(LIFO, Last In First Out) 방식으로 동작하는 선형 자료 구조입니다.

위의 사진과 같이 데이터가 차곡차곡 쌓아 올리는 형태이며, 가장 마지막에 삽입된 데이터가 가장 먼저 삭제되는 구조를 가지고 있습니다.

 

간단한 예시로는 책상에 책을 쌓아두는 것과 포개 둔 일회용 종이컵을 하나씩 꺼내는 방식을 떠올리면 이해하기 쉬울 것 같네요 😋

 

스택에서는 push 연산을 통해 새로운 데이터를 top 위치에 삽입하고, pop 연산을 통해 top 위치의 데이터를 제거할 수 있습니다.

데이터는 'top'을 통해서만 접근 가능하며, 중간에 있는 데이터를 직접 수정하거나 삭제할 수 없습니다.

 

스택(Stack)의 사용 사례

  • 웹 브라우저 방문기록 (뒤로 가기)
  • 실행 취소(undo)
  • 역순 문자열 만들기
  • 후위 표기법 계산

 

 

📌 큐(Queue)의 개념

FIFO(First In First Out)

 

큐(Queue)는 먼저 들어온 데이터가 먼저 나가는 "선입선출(FIFO, First In First Out)" 방식의 선형 자료구조입니다.

 

예시를 들자면, 은행에서 줄을 서서 기다리는 손님이 먼저 온 순서대로 서비스를 받는 것을 예시로 들면 좋을 것 같네요.

 

큐는 front에서 데이터를 삭제(dequeue)하고, rear에서 데이터를 삽입(enqueue)합니다.

즉, "한쪽 끝에서 데이터를 추가하고 반대쪽 끝에서만 삭제"할 수 있습니다.

 

큐(Queue)의 사용 사례

  • 은행 업무 
  • 대기열 순서와 같은 우선순위의 작업 예약 등
  • 서비스 센터의 대기시간
  • 프로세스 관리

 

 

 

스택(Stack) vs 큐(Queue) 비교

특성 스택(Stack) 큐(Queue)
구조 후입선출(LIFO) 선입선출(FIFO)
삽입 방식 push (top에서 삽입) enqueue (rear에서 삽입)
삭제 방식 pop (top에서 삭제) dequeue (front에서 삭제)
접근 방식 top을 통해서만 가능 front에서만 삭제, rear에서 삽입
사용 사례 실행 취소(undo), 역순 문자열 은행 업무, 프로세스 관리

 


 

Reference

스택(Stack)과 큐(Queue) 이해하기
스택(STACK), 큐(QUEUE) 개념/비교/활용 예시

 

 

 

 

'❕Data structure' 카테고리의 다른 글

[Data Structure] 선형(Linear) & 비선형(NonLinear) 자료구조  (0) 2022.03.05
[자료구조] 트리(Tree)란  (3) 2021.10.10
[자료구조] 연결 리스트(Linked List)는 무엇일까?  (0) 2021.09.20
'❕Data structure' 카테고리의 다른 글
  • [Data Structure] 선형(Linear) & 비선형(NonLinear) 자료구조
  • [자료구조] 트리(Tree)란
  • [자료구조] 연결 리스트(Linked List)는 무엇일까?
MoriOS
MoriOS
기억하기 위해 기록하는 공간 🖋️
  • MoriOS
    MoriOS
    MoriOS
  • 전체
    오늘
    어제
    • 분류 전체보기 (52) N
      • 📌 Swift (10)
      • 📱 iOS (4)
      • 💡 Algorithm (1)
      • ❕Data structure (4)
      • 🪙 Python (0)
      • ⚙️ Git (2)
      • 🖋️ TIL Journal (28) N
      • 📝 Etc (3)
  • 블로그 메뉴

    • GitHub
  • 인기 글

  • 태그

    enumerated()
    깃허브 로컬 복구
    깃허브 복구
    Split
    swift 원시값
    TiL
    swift optional
    ios
    구문 레이블
    cocoa 프레임워크
    Components
    mark:
    swift
    weak
    코코아 프레임워크 이름
    후행클로저
    중첩 주석
    한 줄 주석
    swift 열거형
    swift 연관값
    문서화 주석
    주석 활용
    Optional
    편의 이니셜라이저
    convenience init
    코코아 프레임워크
    네비게이션 주석
    GitHub
    static
    innerloop
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
MoriOS
[자료구조] 스택(Stack)과 큐(Queue)에 대해서 알아보자!
상단으로

티스토리툴바