用简单数组实现栈(java)

last-in first-out (LIFO)后进先出特性

属性 array(栈数组) t(栈顶位置) 

方法(空,满,放,取,大小,获取栈顶元素)

public class MyArrayStack {
    
    /*- parameters initialized -*/
    int[] array;
    int t = -1;
    public MyArrayStack(int array_size) 
    {
        this.array = new int[array_size];
    }
    /*- basic functions -*/
    public void push(int temp) throws Exception 
    {
        if (isFull()) 
        {
            throw new Exception("The stack is Full!Can not push!");
        }
        else 
        {
            array[t+1] = temp;
            t = t + 1;
        }
    }
    public int pop() throws Exception 
    {
        if (isEmpty()) 
        {
            throw new Exception("The stack is Empty!Can not pop!");
        }
        else 
        {
            int ret;
            ret = array[t];
            t = t - 1;
            return ret;
        }
    }
    public boolean isFull() 
    {
        if (t + 1 == array.length) 
        {
            return true;
        }
        else 
        {
            return false;
        }    
    }
    public boolean isEmpty() 
    {
        if (t < 0) 
        {
            return true;
        }
        else 
        {
            return false;
        }    
    }
    public int size() 
    {
        return t + 1;
    }
    public int top() throws Exception 
    {
        if (isEmpty()) 
        {
            throw new Exception("The stack is Empty!No top value!");
        }
        else 
        {
            return array[t];
        }
    }
    public static void main(String[] args) throws Exception 
    {
        
        MyArrayStack mystack = new MyArrayStack(10);
        try {
            mystack.push(4);
            mystack.push(3);
            mystack.push(2);
            mystack.push(1);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        while(!mystack.isEmpty()) 
        {
            System.out.println(mystack.pop());    
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值