栈的实现(基于动态数组)

先定义一个接口

public interface Stack<E> {
    int getSize();
    boolean isEmpty();
    boolean contains(E e);
    //入栈
    void push(E e);
    //查看栈顶的数据
    E peek();
    //出栈
    E pop();
}

再定义一个栈的实现类,实现上述接口

/**
 * 基于数组实现栈
 * @author hcc
 *
 */
public class HArrayStack<E> implements Stack<E> {
    private HGenericityArrayList<E> data;
    public HArrayStack() {
        data = new HGenericityArrayList<E>();
    }
    public HArrayStack(int capacity) {
        data = new HGenericityArrayList<E>(capacity);
    }
    public int getCapacity() {
        return data.getCapacity();
    }
    @Override
    public int getSize() {
        // TODO Auto-generated method stub
        return data.getSize();
    }

    @Override
    public boolean isEmpty() {
        // TODO Auto-generated method stub
        return data.isEmpty();
    }

    @Override
    public boolean contains(E e) {
        // TODO Auto-generated method stub
        return data.contains(e);
    }

    @Override
    public void push(E e) {
        // TODO Auto-generated method stub
        data.add(e);
    }

    @Override
    public E peek() {
        // TODO Auto-generated method stub
        return data.get(data.getSize()-1);
    }

    @Override
    public E pop() {
        // TODO Auto-generated method stub
        return data.remove(data.getSize()-1);
    }
    @Override
    public String toString() {
        StringBuilder str = new StringBuilder();
        str.append("HArrayStack:");
        str.append(data);
        return str.toString();
    }
    
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容