1. 程式人生 > >自己實現棧【親測】

自己實現棧【親測】

  • 棧類

public class MyStack {
    /**
     * 棧底層是陣列實現
     *棧頂top,為-1時,棧為空
     */
    private long []arr;
    private int top;
    public MyStack(){
        arr=new long[10];
        top=-1;
    }
    public MyStack(int maxsize){
        arr=new long[maxsize];
        top=-1;
    }

    /*入棧*/
    void push(int value){
        arr[++top]=value;
    }

    /*出棧*/
    long pop(){
        return arr[top--];
    }

    /*檢視棧頂元素*/
    long top(){
        return arr[top];
    }

    /*判斷是否為空*/
    boolean isEmpty(){
        return top==-1;
    }

    /*判斷棧是否滿了*/
    boolean isFull(){
        return top==arr.length-1;
    }
}
  • 測試類

public class Test {
    public static void main(String[] args) {

        MyStack ms=new MyStack(4);
        ms.push(1);
        ms.push(2);
        ms.push(3);
        ms.push(4);
        System.out.println(ms.isEmpty());
        System.out.println(ms.isFull());
        System.out.println(ms.top());
        ms.pop();
        System.out.println(ms.isEmpty());
        System.out.println(ms.isFull());
        System.out.println(ms.top());
    }
}
  • 測試結果