工具类–动态数组栈
工具类代码:
public class DynArrayStack {
private int top;
private int capacity;
private Object[] array;
private void doubleStack() {
Object[] newArray = new Object[capacity * 2];
System.arraycopy(array, 0, newArray, 0, capacity);
capacity = capacity * 2;
array = newArray;
}
public DynArrayStack() {
top = -1;
capacity = 1;
array = new Object[capacity];
}
public boolean isEmpty() {
return (top == -1);
}
public boolean isStackFull() {
return (top == capacity - 1);
}
public void push(Object date) {
if (isStackFull()) {
doubleStack();
}
array[++top] = date;
}
public Object pop() {
if (isEmpty()) {
return "empty";
} else {
return array[top--];
}
}
public void deleteStack() {
top = -1;
}
public int size() {
return top + 1;
}
public static void main(String[] args) {
DynArrayStack dynArrayStack = new DynArrayStack();
dynArrayStack.push("a");
dynArrayStack.push("b");
dynArrayStack.push("c");
dynArrayStack.push("d");
dynArrayStack.push("e");
dynArrayStack.push("e");
int num=dynArrayStack.size();
for (int i = 0; i < num; i++) {
System.err.println(dynArrayStack.pop());
}
}
}