public class Stack {
private int maxSize;
private int[] stack;
private int top = -1;
public Stack(int maxSize) {
this.maxSize = maxSize;
stack = new int[maxSize];
}
// 栈是否为空
public boolean isEmpty() {
return top == -1;
}
// 栈是否满
public boolean isFull() {
return top == (maxSize - 1);
}
// 入栈
public void push(int n) {
if (isFull()) {
throw new RuntimeException("栈已满");
}
stack[++top] = n;
}
// 出栈
public int pop() {
if (isEmpty()) {
throw new RuntimeException("栈为空");
}
return stack[top--];
}
// 打印栈数据
public void show() {
if (isEmpty()) {
throw new RuntimeException("栈为空");
}
for (int i = top; i >=0; i--) {
System.out.print(stack[i] + " ");
}
}
}