java实现栈

一、栈

/**
 * 自定义栈:后进先出
 */
public class Stack<T> {
    private final int length=10;
    private final Object[] entry = new Object[length];
    private int top = -1;

    /**
     * top==-1是栈为空
     * @return
     */
    public boolean isEmpty() {
        return top == -1;
    }

    /**
     * top=0~9代表栈的十个元素,所以top==9代表栈已满
     * @return
     */
    public boolean isFull() {
        return top==length-1;
    }

    /**
     * 入栈
     * @param x
     */
    public void push(T x) {
        if (isFull()) {
            throw new IndexOutOfBoundsException("栈已满");
        }
        top = top + 1;
        entry[top] = x;
    }

    /**
     * 出栈
     * @return
     */
    public T pop() {
        if (isEmpty()) {
            throw new IndexOutOfBoundsException("栈为空");
        }
        top = top - 1;
        return (T) entry[top+1];
    }

    public static void main(String[] args) {
        Stack<Integer> stack = new Stack<>();
        System.out.println(stack.isEmpty());
        for (int i = 0; i < 10; i++) {
            System.out.println(i);
            stack.push(i);
        }
        System.out.println(stack.pop());

    }
}
原文地址:https://www.cnblogs.com/wangbin2188/p/15368933.html