用简单数组实现栈(java)

发布于:2022-12-22 ⋅ 阅读:(773) ⋅ 点赞:(0)

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());    
        }
    }
}


网站公告

今日签到

点亮在社区的每一天
去签到