public class Stack {
int[] stack;
int in=0;
int out=0;
int MaxSize;
public Stack(int MaxSize){
this.stack=new int[MaxSize];
this.MaxSize=MaxSize;
}
public void push(int num){
if(in-out<MaxSize) {
stack[(in-out) % MaxSize] = num;
System.out.println(num+"入栈");
in++;
}else {
System.out.println("stack满了");
}
}
public void pop(){
if(in>out){
out++;
System.out.println(stack[in-out]+"出栈");
}else {
System.out.println("栈没东西");
}
}
}
public static void main(String[] args) {
Stack stack=new Stack(3);
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.pop();
stack.pop();
stack.pop();
stack.push(3);
stack.pop();
}
结果
1入栈
2入栈
3入栈
stack满了
3出栈
2出栈
1出栈
3入栈
3出栈