java实现栈

来源:互联网 发布:淘宝商盟怎么加入 编辑:程序博客网 时间:2024/06/16 07:55

  今天用java的集合实现一个栈的功能,作为熟悉栈数据结构的学习也是不错的,代码如下:

/** * 以ArrayList为基本结构实现栈 * @author Administrator * * @param <T> */public class StackUtils<T> {ArrayList<T> dataList;int maxSize;//栈顶指针   -1:空栈int top;public StackUtils(int maxSize) {this.dataList = new ArrayList<T>();this.maxSize = maxSize;this.top = -1;}/** * 入栈 * @param data * @return */public boolean push(T data) {if(isFull()){System.out.println("stack is full");return false;}dataList.add(data);top++;return true;}/** * 出栈 * @return * @throws Exception */public T pop() throws Exception {if(isEmpty()){throw new Exception("栈已空!");  }return dataList.get(top--);}/** * 栈是否满 * @return */public boolean isFull() {return top+1==maxSize;}/** * 栈是否空 * @return */public boolean isEmpty() {return top == -1;}/** * 栈数量 * @return */public int getElementCount() {return top+1;}/** * 返回栈顶元素 * @return * @throws Exception */public T peek() throws Exception {if(isEmpty()){throw new Exception("栈已空!");  }return  dataList.get(top);} public static void main(String[] args) throws Exception {          StackUtils<String> stack=new StackUtils(1000);              stack.push(new String("1"));              stack.push(new String("2"));              stack.push(new String("3"));              stack.push(new String("4"));              stack.push(new String("5"));          System.out.println(stack.peek());                       while(stack.top>=0)              {                  System.out.println(stack.pop());              }                 }        }

0 0
原创粉丝点击