본문 바로가기

JAVA

[JAVA] 번외편: 스택과 큐에 대하여 알아보자.

📚 자료구조: 스택 (Stack)

스택은 데이터를 "Last In, First Out (LIFO)", 즉 후입선출 방식으로 관리하는 선형 자료구조다.

  • 구조: 한쪽 끝에서만 데이터를 넣고 뺄 수 있는 단방향 구조로 되어 있다.
  • 주요 연산:
    • push: 스택에 데이터를 추가한다.
    • pop: 스택에서 가장 마지막에 추가된 데이터를 제거하고 반환한다.
    • peek: 스택의 가장 위에 있는 데이터를 제거하지 않고 확인한다.
  • 비유: 접시 쌓기와 비슷하다. 쌓고 나면 가장 위에 있는 접시를 먼저 꺼내게 되는 것처럼 자바의 스택 메모리 영역도 이 원리로 작동하여 메서드 호출 순서를 관리한다.

📚 자료구조: 큐 (Queue)

는 데이터를 "First In, First Out (FIFO)", 즉 선입선출 방식으로 관리하는 선형 자료구조다.

  • 구조: 한쪽 끝(앞)에서 데이터가 들어가고, 다른 쪽 끝(뒤)에서 데이터가 나오는 양방향 구조다.
  • 주요 연산:
    • enqueue (또는 offer): 큐의 뒤쪽에 데이터를 추가한다.
    • dequeue (또는 poll): 큐의 앞쪽에서 데이터를 제거하고 반환한다.
    • peek: 큐의 가장 앞에 있는 데이터를 제거하지 않고 확인한다.
  • 비유: 편의점 워크인을 예시로 들자면, 워크인 안(앞)에 들어가서 음료수를 채워 넣으면 손님은 냉장고 앞(뒤)에 있는 음료수를 하나씩 꺼낸다.