栈的数组实现

Posted 猫儿爹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈的数组实现相关的知识,希望对你有一定的参考价值。

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;
        
    }

}

 

以上是关于栈的数组实现的主要内容,如果未能解决你的问题,请参考以下文章

java数据结构-栈的底层实现:数组实现压入,弹出,判断空栈测试代码

栈的简单实现-数组实现

C语言实现数据结构之栈的详解

python数据结构之栈的实现

栈的数组实现

:栈 -- 栈的介绍实现方式(链表数组)应用场景快速入门(使用数组模拟栈的使用回文数)栈实现计算器