数组模拟栈
/**
* 栈
*
* @author Hang W
*/
@SuppressWarnings("all")
public class MyStack {
private long[] stack;
private volatile int top;
public MyStack() {
this.stack = new long[5];
this.top = -1;
}
public MyStack(int maxsize) {
this.stack = new long[maxsize];
this.top = -1;
}
public long top() {
return stack[top];
}
public void push(int value) {
stack[++top] = value;
}
public long pop() {
return stack[top--];
}
public boolean isEmpty() {
return -1 == top;
}
public boolean isFull() {
return stack.length - 1 == top;
}
public static void main(String[] args) {
MyStack stack = new MyStack();
stack.push(5);
stack.push(4);
stack.push(3);
stack.push(2);
stack.push(1);
System.out.println("栈是否满了:" + stack.isFull());
long value = stack.top();
System.out.println("栈顶:" + value);
while(!stack.isEmpty()) {
System.out.print("出栈:" + stack.pop() + " ");
}
System.out.println();
System.out.println("栈是否满了:" + stack.isFull());
System.out.println();
System.out.println("栈是否满了:" + stack.isEmpty());
}
}
结果: