import static java.lang.System.out;
import java.util.Scanner;
class pullStack<T>{
private T[] s;
private int cnt;
@SuppressWarnings("unchecked")
public pullStack() {
cnt = 0;
s = (T[]) new Object[5]; // 값을 받아올때 아예 오브젝트 형태로 받아오게 함.
// s = new S[]; 로 하면 배열을 만들 때 구성 요소 유형을 알지 못하기때문에 만들지 못했다.
}
public void push(T n) {
s[cnt++] = n;
}
public T pop() {
return s[--cnt];
}
public void print() {
for(T a:s) {
out.println(a);
}
}
public boolean sizeEmpty() {
return cnt == 0;
}
public boolean sizeFull() {
return cnt == 5;
}
}
public class MyStack {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
pullStack<Integer> stack = new pullStack<>();
while(true) {
System.out.print("1. push 2. pop 3. break : ");
int a = sc.nextInt();
if(a==1) { // push
if(stack.sizeFull()) {
System.out.println("더 이상 push 할 수 없습니다.");
}
else {
System.out.print("push 값 입력 : ");
stack.push(sc.nextInt());
}
}
else if(a==2) {
if(stack.sizeEmpty()) {
System.out.println("더 이상 pop 할 수 없습니다.");
}else {
System.out.print("pop 값 : ");
System.out.println(stack.pop());
}
}
else {
break;
}
}
}
}
반응형
'자바과정 > Java' 카테고리의 다른 글
Java 기초 - 11일차 (0) | 2021.02.19 |
---|---|
Java 실습(ArrayList & HashMap) - 10일차 (0) | 2021.02.18 |
Java 기초 - 10일차 (0) | 2021.02.18 |
Java 실습(어댑터) - 9일차 (0) | 2021.02.17 |
Java 기초 - 8일차 (0) | 2021.02.17 |
댓글