// Stack 구현
import java.util.Arrays;
import java.util.Scanner;
public class HW_0927_2 {
public static void main(String[] args) {
Stack stack = new Stack();
stack.push('A');
stack.show();
stack.push('B');
stack.show();
stack.push('C');
stack.show();
stack.pop();
stack.show();
stack.pop();
stack.show();
stack.peek();
stack.show();
stack.clear();
stack.show();
}
}
class Stack {
Scanner sc = new Scanner(System.in);
int arrSize;
int count = 0;
char data;
char[] arr = new char[arrSize];
public void setArrSize(int arrSize) { // 스택사이즈 입력받고 배열 초기화
arr = new char[arrSize];
}
public Stack() {
System.out.print("스택 사이즈를 입력하시오. "); // 스택 배열 arrSize 입력받음
arrSize = sc.nextInt();
setArrSize(arrSize); // 입력받은 arrSize로 배열 초기화하는 setArrSize 호출
}
public void pop() {
if(count == 0){
System.out.println("삭제할 문자가 없습니다.");
} else {
System.out.println("삭제된 문자: " + arr[count - 1]);
}
arr[count-1] = '\0'; // char 의 default 값: \0 으로 설정
count--;
}
public void push(char item) {
arr[count] = item;
System.out.println("입력된 문자:" + item);
count++;
}
public boolean isEmpty() {
if (arr == null){
return true;
}
return false;
}
public void clear() {
System.out.println("스택이 초기화 되었습니다.");
arr = null;
}
public void peek() {
System.out.println("엿보려는 문자: " + arr[count-1]);
}
public void show() {
if(arr != null) {
System.out.println("Stack elements: " + Arrays.toString(arr));
} else {
System.out.println("Stack is empty!");
}
}
}
Java
복사