首页 > 编程语言 > 详细

栈的数组实现

时间:2016-11-10 11:54:25      阅读:210      评论:0      收藏:0      [点我收藏+]

1.首先定义了栈需要实现的接口

public interface Mystack<T> {
    
    boolean isempty();
    
   void clear();
   
   int length();
   //入栈
   boolean push(T data);
   //出栈
   T pop();
}

2.栈的数组实现

 

package suanfa;

public class MyArrayStack<T> implements Mystack<T> {

    private Object [] obs=new Object[16];
    private int size=0;
    
    
    @Override
    public boolean isempty() {
        // TODO Auto-generated method stub
        return size==0;
    }

    @Override
    public void clear() {
        // TODO Auto-generated method stub
        for (int i=0;i<obs.length;i++){
            
            obs[i]=null;
        }
        
        size=0;
    }

    @Override
    public int length() {
        // TODO Auto-generated method stub
        return size;
    }

    @Override
    public boolean push(T data) {
        // TODO Auto-generated method stub
    //    return false;
        
        if(size>=obs.length){
            resize();
            
        }
        obs[size++]=data;
        
        return true;
        
    }

    @Override
    public T pop() {
        // TODO Auto-generated method stub

      if(size==0){
       return null;
       }
     return (T) obs[--size];


    }
    
    
    private void resize(){
        
        Object [] tmp=new Object[obs.length*3/2+1];
        
        for(int i=0;i<obs.length;i++){
            tmp[i]=obs[i];
            obs[i]=null;
            
        }
        
        obs=tmp;
        
    }

}

 

栈的数组实现

原文:http://www.cnblogs.com/luo-mao/p/6050236.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!