操作:入栈、出栈、获取栈顶元素和判断栈是否为空
参考这位博主的代码
https://sihai.blog.csdn.net/article/details/80721376
package com.Stacck;
public interface Stack {
//入栈
public void push(Object obj) throws Exception;
//出栈
public Object pop() throws Exception;
//获取栈顶元素
public Object getTop() throws Exception;
//判断栈是否为空
public boolean isEmpty();
}
package com.Stacck;
public class SequenceStack implements Stack {
Object[] stack;
final int defaultSize = 10; //默认最大长度
int top; //栈顶
int maxsize; //栈最大长度
public SequenceStack() {
init(defaultSize);
}
public SequenceStack(int size) {
init(size);
}
public void init(int size) {
stack = new Object[size];
top = 0;
this.maxsize = size;
}
@Override
public void push(Object obj) throws Exception {
if (top == maxsize) {
throw new Exception("堆栈已满!");
}
stack[top] = obj;
top++;
}
@Override
public Object pop() throws Exception {
if (isEmpty()) {
throw new Exception("堆栈为空!");
}
top--;
return stack[top];
}
@Override
public Object getTop() throws Exception {
if (isEmpty()) {
throw new Exception("堆栈为空!");
}
return stack[top - 1];
}
@Override
public boolean isEmpty() {
return top == 0;
}
}