当前位置: 代码迷 >> J2SE >> 一路笔试题,麻烦大家看哈
  详细解决方案

一路笔试题,麻烦大家看哈

热度:221   发布时间:2016-04-24 18:02:16.0
一道笔试题,麻烦大家看哈!
1)用int数组实现栈,实现pop(),push()方法,并且当栈空间满时,栈的空间增加一倍。
  2)在1)的基础之上,增加一个getMax()方法,返回栈中的最大值,要求这个函数具有O(1)的时间复杂度

------解决方案--------------------
http://topic.csdn.net/u/20090612/10/c1df5a00-ed6d-4c25-9b62-1b6507a55f7c.html


Java code
/*自己定义的栈,为了可以自由的访问栈中的元素。 * */class MyStack{    String[]  st=new String[10];    int top=0;    void push(String vex){        if(top==st.length-1){      //栈满时,给栈扩容            String[] st1=new String[st.length+10];            System.arraycopy(st, 0, st1, 0, st.length-1);            st=st1;        }        st[top++]=vex;    }    boolean isEmpty() {        if(top==0) return true;        return false;    }    String pop(){        if(top==0){            return null;        }else{            return st[--top];            }    }    public String toString(){        String s="";        for(int i=0;i<top;i++){            s=s+st[i]+" ";        }        return s;    }}
  相关解决方案