前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据结构之基于Java的顺序栈实现

数据结构之基于Java的顺序栈实现

作者头像
IT架构圈
发布2018-05-31 15:41:59
3960
发布2018-05-31 15:41:59
举报
文章被收录于专栏:IT架构圈IT架构圈
代码语言:javascript
复制
public class StackArray implements Stack {
    private final int LEN = 4;  //数组的默认大小
    private Object[] elements;  //数据元素数组
    private int top;            //栈顶指针
    public StackArray() {
        top = -1;
        elements = new Object[LEN];
    }
    public int getSize() {
        return top+1;
    }//返回堆栈的大小
    public boolean isEmpty() {
        return top<0;
    }//判断堆栈是否为空
    public void push(Object e) {
        if (getSize()>=elements.length) expandSpace();
        elements[++top] = e;
    }//数据元素e入栈
    private void expandSpace(){
        Object[] a = new Object[elements.length*2];
        for (int i=0; i<elements.length; i++)
            a[i] = elements[i];
        elements = a;
    }
    public Object pop() throws StackEmptyException {
        if (getSize()<1)
            throw new StackEmptyException("错误,堆栈为空。");
        Object obj = elements[top];
        elements[top--] = null;
        return obj;
    }//栈顶元素出栈
    public Object peek() throws StackEmptyException {
        if (getSize()<1)
            throw new StackEmptyException("错误,堆栈为空。");
        return elements[top];
    }//取栈顶元素
}
public interface Stack {
    //返回堆栈的大小
    public int getSize();
    //判断堆栈是否为空
    public boolean isEmpty();
    //数据元素e入栈
    public void push(Object e);
    //栈顶元素出栈
    public Object pop() throws StackEmptyException;
    //取栈顶元素
    public Object peek() throws StackEmptyException;
}
package dsa.exception;
//堆栈为空时出栈或取栈顶元素抛出此异常
public class StackEmptyException extends RuntimeException{
    public StackEmptyException(String err) {
        super(err);
    }   
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程坑太多 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档