public class MyStack {
private int top = -1;//索引
private Object[] arr = null;//底层数组
private MyStack() {
arr = new Object[10];
}
private MyStack(int capacity) {
if (0 < capacity) {
arr = new Object[10];
} else {
arr = new Object[capacity];
}
}
public void push(Object obj) {
if (top == arr.length - 1) {
this.enlarge();
}
arr[++top] = obj;
}
public Object pop() throws Exception {
if (top == -1) {
throw new Exception("nothing");
}
return arr[top--];
}
public void display() {
for (int i = 0; i <= top; i++) {
System.out.println(arr[i]);
}
}
//自动扩大数组大小
private void enlarge() {
int num = arr.length / 3;
if (num == 0) {
num = 1;
}
arr = Arrays.copyOf(arr, num);
}
public static void main(String[] args) throws Exception {
MyStack stack = new MyStack();
stack.push(1);
stack.push("123");
stack.display();
stack.pop();
stack.display();
List list = new ArrayList();
}
}
使用数组实现stack
最新推荐文章于 2024-06-20 19:06:52 发布