java用数组模拟栈

来源:互联网 发布:java redis lua脚本 编辑:程序博客网 时间:2024/06/06 21:35
package stack2;public interface StackADT {        /**     * 添加元素     * @param object     */    void push(Object object);        /**     * 弹出元素     * @return     */    Object pop() ;        /**     * 访问栈顶元素     * @return     */    Object peek();        /**     * 是否为空     * @return     */    boolean isEmpty();        /**     * 大小     * @return     */    int size();}package stack2;import java.util.Arrays;/** * 数组模拟栈 * @author cs * */public class ArrayStack implements StackADT{    private int top;                  //当前位置    private Object [] stack;          //数组栈    private int DEFAULT_SIZE = 10;   //默认大小        public ArrayStack() {        this.top = 0;        stack = new Object [DEFAULT_SIZE];    }        @Override    public void push(Object object) {        if(size() == stack.length) {            expandCapaCity();        }        stack[top] = object;        top ++;            }        /**     * 扩展长度     */    public void expandCapaCity() {        stack = Arrays.copyOf(stack, stack.length * 2);    }    @Override    public Object pop() {        // TODO Auto-generated method stub        if(isEmpty()) {            return null;        }        top --;        Object result = stack[top];        stack[top] = null;        return result;    }    @Override    public Object peek() {        // TODO Auto-generated method stub        if(isEmpty()) {            return null;        }        return stack[top - 1];    }    @Override    public boolean isEmpty() {        // TODO Auto-generated method stub        return top == 0;    }    @Override    public int size() {        // TODO Auto-generated method stub        return stack.length;    }    }


0 0
原创粉丝点击