CS 기초/자료구조

알고리즘-자료구조-스택

꿈꾸는 아이 2025. 5. 7. 19:14

개요

  • 최근에 넣은 데이터를 가장 먼저 꺼내야 할 때 사용하는 자료구조이다.
  • 가장 최근에 들어온 데이터가 가장 먼저 나가는 LIFO 구조이다.

특징

  • 기본 기능기능 설명
    push(x) 스택에 데이터를 삽입한다.
    pop() 스택의 가장 위에 있는 데이터를 꺼낸 후 삭제한다.
    peek() 가장 위에 있는 데이터를 확인한다(삭제 X).
    isEmpty() 스택이 비어 있는지 확인한다.
    size() 스택에 담긴 요소의 개수

사용법

import java.util.Stack;

public class StackExample {
    public static void main(String[] args) {
        Stack<String> stack = new Stack<>();
        
        stack.push("A");
        stack.push("B");
        stack.push("C");

        System.out.println(stack.pop()); // C
        System.out.println(stack.peek()); // B
        System.out.println(stack.pop()); // B
    }
}

사례

  • 괄호 검사: 열린 괄호 push, 닫힌 괄호 pop으로 짝 검사
  • 브라우저 뒤로가기 기능: 방문한 페이지를 스택에 저장
  • 재귀함수: 함수 호출 정보를 내부적으로 스택에 저장
  • 수식 계산: 후위표기식 계산 시 사용

정리

  • 최근 데이터를 빠르게 꺼낼 때 사용하는 구조이다.