Java用数组实现栈

来源:互联网 发布:赛诺数据是什么 编辑:程序博客网 时间:2024/05/21 21:41

栈是只在表尾一端进行操作的线性表

成员变量有:栈的长度size,对象数组data。

成员方法有:

构造方法

获取栈的长度getSize()

元素出栈

元素入栈

清空栈

public class Stack { private int size;//栈的长度 ,也就是栈顶下表private Object[] data;    public Stack(){//构造函数        data=new Object[10];    } public int getSize(){//获取栈的长度return size; } //出栈public Object pop(){if(size==0)          return null;          else          {          Object tmp = data[size-1];        data[size-1]=null;//便于gc回收            size--;            return tmp;        }    } //进栈    public void push(Object o){    if(size>=data.length)        {              //栈空间已满,需要扩容              resize();        }      data[size++]=data;    }       /*     * 栈空间扩容两倍     */    public void resize()      {      Object[] tmp = (Object[]) new Object[data.length*2];          //将原来数组的元素放到新的数组中去    for(int i = 0;i<data.length;i++){            tmp[i]=data[i];              data[i]=null;//便于gc处理        }      data = tmp;        tmp = null;//便于gc处理,提高程序效率      }      /*     * 清空栈     */    public void clear() {        for(int i = 0;i<data.length;i++)          data[i]=null;//将其引用只为null,方便gc进行回收          size = 0;//栈的大小置0    }   }


0 0
原创粉丝点击