스택
2024. 3. 21. 18:28ㆍ멋쟁이사자처럼
후입선출
스택 구현의 중요 키워드
- push : 값을 넣음
- pop : 값을 꺼냄
- peek : 빼지는 않고 값만 알려줌
- top : 현재 가리키고 있는 인덱스
- isEmpty : 배열이 비어있는지 확인
- isFull : 배열이 꽉 차있는지 확인
<코드>
public class StackExam {
private int[] stackArray; // 스택을 저장할 배열
private int stackCapacity; // 스택의 최대 크기
private int top = -1; // 스택 포인터
public StackExam(int stackCapacity) {
this.stackArray = new int[stackCapacity];
this.stackCapacity = stackCapacity;
}
public boolean isFull() {
if (top >= stackCapacity){
return true;
}else{
return false;
}
}
public boolean isEmpty() {
if (top == -1){
return true;
}else{
return false;
}
}
public void push(int item) {
if (isFull() == true) {
System.out.println("배열이 가득 찼습니다");
}else{
stackArray[++top] = item;
System.out.println("입력한 값:" + item);
}
}
public void pop() {
if (isEmpty() == true){
System.out.println("배열이 비어있습니다");
}else {
System.out.println("꺼낸 값: " + stackArray[top--]);
}
}
public void peek() {
if (isEmpty() == true){
System.out.println("배열이 비어있습니다.");
}else {
System.out.println("최상위에 있는 값: " + stackArray[top]);
}
}
public static void main(String[] args) {
StackExam myStack = new StackExam(10);
myStack.push(1);
myStack.pop();
myStack.push(5);
myStack.push(2);
myStack.pop();
myStack.peek();
myStack.push(12);
myStack.pop();
myStack.pop();
myStack.pop();
}
}
'멋쟁이사자처럼' 카테고리의 다른 글
재귀함수와 꼬리재귀 (0) | 2024.03.21 |
---|---|
큐 (0) | 2024.03.21 |
이진 탐색 (0) | 2024.03.20 |
순차 탐색, 보초법 (0) | 2024.03.20 |
클래스(class) (0) | 2024.03.20 |