Stack 이란?
- 메모리 안 데이터들을 더욱 효율적으로 다루기 위해 만들어진 데이터 참조 방식
- 마지막에 들어온 데이터가 가장 먼저 나가는 LIFO(Last In First Out, 후입선출) 구조를 갖는다.
- java.util 패키지 소속
Stack 특징
- 한 쪽 끝에서만 자료를 삽입하거나 삭제할 수 있는 선형 구조
- 인터럽트 처라. 수식 계산. 서브루틴 복귀 저장에 사용
- 자료구조 그래프의 깊이 우선 탐색(DFS)에 사용
- 재귀적 함수를 호출할 때 사용
- 삽입, 삭제는 O(1), 탐색은 O(n)
구현 종류
- 배열 → input 사이즈를 알아야 함
- 리스트 → 사이즈를 몰라도 가능, 구현이 어려움
- java의 Stack class는 리스트로 구현되어 있음