Java栈实现:
1)顺序栈(数组)实现:
*无法建立泛型数组,采用Object对象数组,可以输入各种类型(不知道有什么不妥)。
1 public class MySeqStack{ 2 private Object data[]; //顺序栈 3 private int maxSize; //栈大小 4 private int top=-1; //栈顶 5 6 //默认构造函数,数组大小10 7 public MySeqStack(){ 8 maxSize=10; 9 data=new Object[maxSize]; 10 } 11 12 //构造函数,参数数组大小 13 public MySeqStack(int size){ 14 if(size>0){ 15 maxSize=size; 16 data=new Object[size]; 17 }else{ 18 System.out.println("wrong argument,use default max size(10)."); 19 maxSize=10; 20 data=new Object[maxSize]; 21 22 } 23 } 24 25 /**压入栈 26 * @author truestar 27 */ 28 public void push(Object x){ 29 if(top<maxSize-1) 30 data[++top]=x; 31 else{ 32 expandSpace(); 33 push(x); 34 } 35 } 36 37 38 /** 扩展栈(数组)空间 39 * @author truestar 40 */ 41 private void expandSpace(){ 42 int maxSize0=maxSize; 43 Object[] data0=data; 44 maxSize*=2; 45 data=new Object[maxSize]; 46 System.arraycopy(data0,0,data,0,maxSize0); 47 data0=null; 48 } 49 50 51 // 判断栈是否为空 52 public boolean isEmpty(){ 53 return (top==-1); 54 } 55 56 //弹出栈顶 57 public Object pop(){ 58 if(!isEmpty()) 59 return data[top--]; 60 else 61 return false;//return "Stack is empty!"; 62 63 } 64 65 //返回栈顶但不删除 66 public Object top(){ 67 if(!isEmpty()) 68 return data[top]; 69 else 70 return false; //return "Stack is empty!"; 71 72 } 73 74 }
end
有什么不对或者需要补充,call me。
撰写时间:2017-07-19 10:36:24
修改时间:2018-06-19 09:55:05