Stack 클래스
- 스택은 모든 원소들의 삽입과 삭제가 리스트의 한쪽 끝에서만 수행되는 제한 조건을 가지는 선형 자료구조이다.
- LIFO(Last-In-First-Out)의 형태로, 마지막에 추가된 데이터를 가장 먼저 처리하는 구조를 가진다.
java.util.Stack
스택을 사용하기 위해서 import를 해야 한다.
오버플로우(Overflow) / 언더플로우(Underflow)
- 오버 플로우 : 스택 공간이 가득찼을 때 데이터를 추가할 경우 스택 오버플로우 발생.
- 언더 플로우 : 스택 공간이 비었을 때 데이터를 꺼낼 경우 스택 언더플로우 발생.
메소드 정리
add() | 스택에 데이터를 추가한다. (boolean형 반환) |
push() | 스택에 데이터를 추가한다. |
pop() | 최근에 추가된 데이터(top)를 삭제한다.(꺼내온다.) |
peek() | 스택에서 top 위치에 있는 데이터를 반환(조회)한다. |
search() | 찾고있는 데이터가 있는 인덱스 위치를 반환한다. |
empty() | 스택이 비었는지 확인한다. 빈 경우 true, 들어있는 경우 false 반환 |
size() | 현재 스택에 들어있는 데이터의 개수를 반환한다. |
Stack<Integer> stack = new Stack<Integer>(); //<> 안에는 Wrapper 클래스가 들어감.
stack.push(1); // 스택에 1, 2, 3 추가
stack.push(2);
stack.push(3);
stack.pop(); // 최근에 추가된 데이터 삭제 - 3이 삭제 된다.
System.out.println(stack.peek()); // top자리에 있는 데이터를 반환한다. - 2반환
System.out.println(stack.search(1)); // 1에 해당하는 위치(인덱스)를 반환한다. - 0반환
스택 활용 예제
- 문자 뒤집기 (ex. 백준 17413)
'Java' 카테고리의 다른 글
String , StringBuilder, StringBuffer의 차이 (0) | 2021.08.03 |
---|---|
JAVA 복습 - 기본 지식 복습 및 확인 (0) | 2021.08.01 |
String 클래스와 메소드 정리 (0) | 2021.06.09 |
Math 클래스와 메소드 정리 (0) | 2021.05.26 |
Arrays 클래스와 메소드 정리 (0) | 2021.05.25 |