1. 程式人生 > >java用陣列實現棧

java用陣列實現棧

1.1.  棧的資料結構

棧是一種先進後出的資料結果,只能在一端(稱為棧頂(top))對資料項進行插入和刪除。

1.2.  Java實現

StackTest

package ch04;
 
public class StackTest {
 
    public static void main(String[] args) {
 
       ArrayStack stack = new ArrayStack(10);
       System.out.println("isEmpty: "+stack.isEmpty());
       for(int i = 0;i<10;i++){
           stack.push(i);
       }
       System.out.println("isFull: "+stack.isFull());
      
       while(!stack.isEmpty()){
           System.out.println(stack.pop());
       }
      
    }
 
}
 
class ArrayStack{
    private int[] arrInt;//內建陣列
    private int top;//棧頂指標
   
    public ArrayStack(int size){
       this.arrInt = new int[size];
       top = -1;
    }
   
    /**
     * 判斷棧是否為空
     * @return
     */
    public boolean isEmpty(){
       return -1 == top;
    }
   
    /**
     * 判斷棧是否已滿
     * @return
     */
    public boolean isFull(){
       return arrInt.length -1 == top;
    }
    /**
     * 向棧頂插入一個元素
     * @param item
     */
    public void push(int item){
       if(isFull()){
           throw new RuntimeException("棧已滿");
       }
       arrInt[++top] = item;
    }
   
    /**
     * 從棧頂取出一個元素
     * @return
     */
    public int pop(){
       if(isEmpty()){
           throw new RuntimeException("棧為空");
       }
       return arrInt[top--];
    }
}

 

結果如下:

isEmpty: true

isFull: true

9

8

7

6

5

4

3

2

1

0