스택의 ADT(추상 자료형, Abstract Data Type)
1. 푸시(push)
2. 팝(pop)
3. 가득 찼는지 확인(isFull)
4. 비었는지 확인(isEmpty)
5. 최근에 삽입한 데이터의 위치 확인용 변수(top)
| 구분 | 정의 | 설명 |
| 연산 | boolean isFull() | 스택에 들어 있는 데이터 개수가 maxsize인지 확인해 boolean값을 반환. 가득 차 있다면 true, 아니면 false |
| boolean isEmpty() | 스택에 들어 있는 데이터가 하나도 없는지 확인해 boolean값을 반환. 데이터가 하나라도 있으면 false, 아니면 true | |
| void push(ItemType item) | 스택에 데이터를 푸시 | |
| ItemType pop() | 스택에서 최근에 푸시한 데이터를 팝, 그 데이터를 반환 | |
| 상태 | Int top | 스택에서 최근에 푸시한 데이터의 위치를 기록 |
| ItemType data[maxsize] | 스택의 데이터를 관리하는 배열. 최대 maxsize개의 데이터를 관리 |
Stack 클래스
Stack<Integer> stack = new Stack<>(); // 스택 객체 생성
// 스택에 데이터 푸시
stack.push(1);
stack.push(3);
// 스택이 비어 있는지 확인
System.out.println(stack.isEmpty()); // false
// 스택에서 팝
System.out.println(stack.pop()); // 3
System.out.println(stack.pop()); // 1
System.out.println(stack.isEmpty()) // true
// 스택에 가장 최근에 푸시한 값
System.out.println(stack.peek()); // 5
System.out.println(stack.pop()); // 5
// 스택에 들어 있는 데이터의 개수(size)
System.out.println(stack.size()); // 1'코딩 테스트(Coding Test) > 알고리즘 개념' 카테고리의 다른 글
| DFS / BFS (0) | 2024.11.22 |
|---|---|
| 분할 정복(Divide and Conquer) - Merge Sort (2) | 2024.11.13 |
| 코테 필수 문법 (4) | 2024.10.06 |
| 시간복잡도 (1) | 2024.10.06 |
| Pseudo-code 작성 요령 (1) | 2024.10.06 |