A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© gcno93 中级黑马   /  2016-8-31 22:49  /  377 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class MyStarck {
        private int nowIndex;//栈,当前(元素)的下标
        private int length=10;//栈的长度,默认为是个数
        private int dataCount=0;//栈元素的总数
        private Object[] dataSource=new Object[length];//数据存储容器
       
        /**
        *入栈函数
        *
        */
        public void appand(Object data){
                if(nowIndex+1>=length){//判断当前的下标是否超出栈的长度
                        //大
                        Object[] newDataSource=new Object[dataCount*2];//把数据存储容器的容量提高一倍
                        //把原数据重新输入到新的容器
                        for(int i=0;i<length;i++){
                                newDataSource[i]=dataSource[i];
                        }
                newDataSource[++nowIndex]=data;//把添加进来的数据存储到容器
                length=newDataSource.length;//获得新的长度
                ++dataCount;//增加元素总数
                dataSource=newDataSource;//重新回归指引
                }else{
                        //小
                        if(dataCount==0){
                                dataSource[nowIndex]=data;//当前的下标+1,然后在数据存储容器中找到当前下标,进行赋值
                        }else{
                                dataSource[++nowIndex]=data;//当前的下标+1,然后在数据存储容器中找到当前下标,进行赋值
                        }
                        ++dataCount;//增加元素总数
                }
        }

        /**
        *打印
        *
        */
        public String toString(){
                String temp="";
                for(int i=dataCount-1;i>=0;i--){
                        //第一个
                        if(i==dataCount-1){
                                temp="[";
                        }
                        temp+=(dataSource[i]+",");
                        //最后一个
                        if(i==0){
                                temp=temp.substring(0,temp.lastIndexOf(","))+"]";
                        }
                }
                //temp=dataCount+"";
                return temp;
        }
        /**\
        *获得元素
        *
        */
        public Object get(int index){
                if(index>=dataCount || index<0){
                        return -1;
                }else{
                        return dataSource[index];
                }
        }


}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马