package com.java.test;
public class ArrayStack {
private static final int DEFAULT_SIZE = 16;
private int[] instance;
private int capacity = DEFAULT_SIZE;
private int size;
private int top = -1;
public ArrayStack() {
super();
instance = new int[capacity];
}
public int peek() {
if(isEmpty()) {
return -1;
} else {
return instance[top];
}
}
public int pop() {
if(isEmpty()) {
return -1;
} else {
int temp = instance[top];
size--;
top--;
return temp;
}
}
public void push(int i) {
if(isFull()) {
addCapacity();
push(i);
} else {
size++;
top++;
instance[top] = i;
}
}
public boolean isFull() {
return size == capacity;
}
public void addCapacity() {
capacity = capacity + DEFAULT_SIZE;
int[] temp = new int[capacity];
System.arraycopy(instance, 0, temp, 0, instance.length);
instance = temp;
}
public boolean isEmpty() {
return size == 0 ? true : false;
}
public static void main(String[] args) {
ArrayStack stack = new ArrayStack();
System.out.println(stack.size);
for (int i = 0; i < 35; i++) {
stack.push(i);
}
System.out.println(stack.size);
System.out.println(stack.capacity);
System.out.println(stack.peek());
System.out.println(stack.pop());
System.out.println(stack.peek());
stack.push(100);
System.out.println(stack.peek());
}
}
第一篇博客,从Java基础写起,用int[]实现stack结构
最新推荐文章于 2024-05-27 15:02:16 发布