자료구조
Stack 스택
코딩개발
2023. 7. 26. 16:12
728x90
반응형
Stack
1. LIFO(Last In First Out))
2. 그래프 깊이 우선 탐색(DFS)에서 사용
3. 재귀적(Recursion) 함수 호출 할 때 사용
import java.util.Stack;
Stack<Integer> stack = new Stack<>(); //int형 stack 선언
Stack<String> stack = new Stack<>(); //char형 stack 선언
Stack 추가
Stack<Integer> stack = new Stack<>();
stack.push(1); // stack에 값 1 추가
Stack 삭제
stack.pop(); // stack에 값 제거
stack.clear(); // stack의 전체 값 제거 (초기화)
stack.peek(); // 값을 빼지 않고 가장 상단 값 확인
stack.size(); // stack 사이즈
stack.empty(); // stack이 비어있다면 true
stack.search(4); // stack에서 4 검색(있으면 index 반환, 없으면 -1 반환)
stack.contains(1); // stack에 1이 있다면 true
(참고)
search()의 경우 index가 1부터 시작하며 마지막에 push된 값의 index값이 1이다.
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Stack<Integer> s = new Stack<>();
s.push(1);
s.push(2);
s.push(3);
s.push(4);
s.push(5);
System.out.println(s.search(4)); // 2
}
}
위 코드를 실행하면 아래 그림과 같은 스택이 만들어진다.
마지막에 push()한 5의 index값이 1이 되어 아래 표와 같은 결과가 나오게 되며
s.search(4)의 결과는 index값이 2로 출력된다.
stack 값 | index 값 |
5 | 1 |
4 | 2 |
3 | 3 |
2 | 4 |
1 | 5 |
728x90
반응형