Algorithm/자료구조

스택 (Stack) 과 큐 (Queue) 자료구조에 대해 쉽게 알아보자

Albosa2lol 2024. 6. 23. 09:13

 

  1. 스택 (Stack):
    • 특징: 후입선출(LIFO, Last In First Out) 구조. 가장 마지막에 넣은 데이터가 가장 먼저 나옵니다.
    • 사용 예: 책을 쌓아 놓는 방식. 가장 위의 책이 가장 먼저 제거됩니다.
    • 주요 연산:
      • push: 데이터를 스택에 넣는 연산.
      • pop: 스택의 맨 위 데이터를 꺼내는 연산.
      • top 또는 peek: 스택의 맨 위 데이터를 제거하지 않고 조회하는 연산.
  2. 큐 (Queue):
    • 특징: 선입선출(FIFO, First In First Out) 구조. 가장 먼저 넣은 데이터가 가장 먼저 나옵니다.
    • 사용 예: 줄을 서는 방식. 줄의 맨 앞에 있는 사람이 먼저 나갑니다.
    • 주요 연산:
      • enqueue: 데이터를 큐의 맨 뒤에 넣는 연산.
      • dequeue: 큐의 맨 앞 데이터를 꺼내는 연산.
      • front: 큐의 맨 앞 데이터를 제거하지 않고 조회하는 연산.
  3. 덱 (Deque, Double-Ended Queue):
    • 특징: 양쪽 끝에서 데이터를 추가하거나 제거할 수 있는 자료구조.
    • 사용 예: 양쪽 끝에서 데이터를 처리할 수 있는 상황. 예를 들어, 문서의 양쪽 끝에서 페이지를 삽입하거나 제거하는 경우.
    • 주요 연산:
      • append: 데이터를 덱의 오른쪽 끝에 추가.
      • appendleft: 데이터를 덱의 왼쪽 끝에 추가.
      • pop: 덱의 오른쪽 끝 데이터를 제거.
      • popleft: 덱의 왼쪽 끝 데이터를 제거.

Python의 collections 모듈에서 제공하는 deque는 큐와 덱의 기능을 모두 지원하는 자료구조입니다.

'Algorithm > 자료구조' 카테고리의 다른 글

Heap, Hash Table  (0) 2024.07.25
스택, 큐, 데크  (0) 2024.07.24
브루트포스 알고리즘과 슬라이딩 윈도우 알고리즘  (0) 2024.07.18