class StackX{ private int maxSize; private long[] stackArray; private int top; public StackX(int size){ maxSize = size; stackArray = new long[maxSize]; top = -1;//初始化栈顶指针为-1,表示栈中无元素 } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("********"+System.getProperty("line.separator")); for(int i=0;i<top+1;i++){ sb.append(stackArray[top - i]+System.getProperty("line.separator")); } sb.append("********"); return sb.toString(); } public void display(){ System.out.println(toString()); } /** * 把value压入栈中 * @param value */ public void push(long value){ stackArray[++top] = value; } /** * 栈顶元素出栈 * @return */ public long pop(){ return stackArray[top--]; } /** * 查看栈顶元素,但是不出栈 * @return */ public long peek(){ return stackArray[top]; } /** * 栈是否为空 * @return 如果为空返回true;否则返回false */ public boolean isEmpty(){ return (top==-1); } /** * 栈是否满 * @return 如果满返回true;否则返回false */ public boolean isFull(){ return (top == maxSize); } } public class StackXDemo { public static void main(String[] args) { StackX s = new StackX(5); s.push(12); s.push(32); s.push(98); s.display(); while(!s.isEmpty()){ System.out.println(s.pop()+"出栈"); System.out.println("现在栈中元素为:"); s.display(); } } }