• 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

  • 相关阅读:
    分布式文件系统
    分布式文件系统
    ASP.NET MVC 使用 FluentScheduler 定时器计划任务
    从零开始学 Java
    从零开始学 Java
    从零开始学 Java
    从零开始学 Java
    从零开始学 Java
    从零开始学 Java
    从零开始学 Java
  • 原文地址:https://www.cnblogs.com/xy-hong/p/7204431.html
Copyright © 2020-2023  润新知