1 public class Stack { 2 private int maxSize=2;//棧容量,初始為2,(用於表達式求值,操作數棧) 3 private int top=-1;//棧頂指針 4 private int[] data=new int[maxSize];//數據 5 //判空
1 public class Stack { 2 private int maxSize=2;//棧容量,初始為2,(用於表達式求值,操作數棧) 3 private int top=-1;//棧頂指針 4 private int[] data=new int[maxSize];//數據 5 //判空 6 public boolean IsEmpty(){ 7 if(top==-1) 8 return true; 9 else 10 return false; 11 } 12 //判滿 13 public boolean IsFull(){ 14 if(top==maxSize-1) 15 return true; 16 else 17 return false; 18 } 19 //圧棧 20 public boolean Push(int elem){ 21 if(IsFull()) 22 return false; 23 else{ 24 data[++top]=elem; 25 return true; 26 } 27 } 28 //出棧 29 public int Pop(){ 30 if(IsEmpty()){ 31 return -65535; 32 } 33 else{ 34 return data[top--]; 35 } 36 } 37 }
總結:
- 類成員變數要賦初值(習慣)
- maxSize在C++中使用了巨集定義,在Java中數組不需要預先設定長度,但一旦設定也無法更改,待改進(使用靜態變數)
- 線性棧,via2015冬考研