无知的家伙

导航

Java栈实现

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

 

posted on 2017-07-19 10:37  无知的家伙  阅读(390)  评论(3编辑  收藏  举报