개요
- 최근에 넣은 데이터를 가장 먼저 꺼내야 할 때 사용하는 자료구조이다.
- 가장 최근에 들어온 데이터가 가장 먼저 나가는 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으로 짝 검사
- 브라우저 뒤로가기 기능: 방문한 페이지를 스택에 저장
- 재귀함수: 함수 호출 정보를 내부적으로 스택에 저장
- 수식 계산: 후위표기식 계산 시 사용
정리
- 최근 데이터를 빠르게 꺼낼 때 사용하는 구조이다.