java实现栈(数组方式)

来源:互联网 发布:javascript弹出输入框 编辑:程序博客网 时间:2024/06/05 11:08

StackArray类

import java.util.Arrays;public class StackArray<T> {T[] ars;private int default_capacity=10;//元素个数private int size=0;private int top=-1;@SuppressWarnings("unchecked")public StackArray(){ars=(T[])new Object[default_capacity];}@SuppressWarnings("unchecked")public StackArray(int capacity){ars=(T[])new Object[capacity];} public  void push(T data) { if (size==ars.length) { //扩容20% @SuppressWarnings("unchecked")T[] newars=(T[])new Object[(int)(ars.length*1.2)]; System.arraycopy(ars, 0, newars, 0, ars.length); Arrays.fill(ars, null); ars=newars; push(data); } else { ars[++top]=data; size++;   }   } public T Pop() {  if (top==-1)  {  return null;  }  else   { T topdata=ars[top]; ars[top--]=null; size--; return topdata;  }   } public int getSize() { return this.size; } public T getTopData() { return ars[top]; } public int getTopIndex() { return this.top; }}


测试类

public class StackArrayTest { public static void main(String[] ars) { StackArray<Integer> sa=new StackArray<Integer>(5); sa.push(1); sa.push(2); sa.push(3); sa.push(4); sa.push(5); sa.push(6);    while (sa.getTopIndex()>=0)   {   System.out.println(sa.Pop());      }     }}


 

原创粉丝点击