可以用类Vector或者ArrayList或者Stack

解决方案 »

  1.   

    最基本的还是链表
    只不过栈顶节点指针指向前一接点,栈底指向null。
      

  2.   

    import java.unil.*;public class Stack{
       public Stack{
          Collection col = new LinkedArrays();
          写一些方法
      

  3.   

    从前写过的例子(仅供参考):
    public class MyStack {
      private static MyStack head;  private Object obj;
      private boolean flag=true;
      private MyStack next=null;
      private MyStack headPointer=null;
      private long size;  public MyStack(){
      head=null;
      next=null;
      headPointer=null;
      obj=null;
      size=0;
      }  private MyStack(Object obj){
      this.obj=obj;
      }  public void push(Object o){
        if(flag){
         this.next=head;
         head=this;
         flag=false;
        }
        MyStack stack=new MyStack(o);
        stack.next=head;
        head=stack;
        headPointer=head;
        size++;
      }  public long size(){
        return size;
      }
      public MyStack getHead(){
        return headPointer;
      }  private Object getObject(){
      return obj;
      }  public void finalize(){
      System.out.println(obj+" finalized.");
      }  public Object pop(){
        if(getHead()==null) return null;
        Object o=headPointer.getObject();
        headPointer=headPointer.next;
        size--;
        return o;
      }  public  static void main(String[] args){
      MyStack stack=new MyStack();
      for(int i=0;i<20;i++){
        stack.push(Integer.toString(i));
      }
      while(stack.getHead()!=null){
        System.out.println(" size: "+stack.size()+" obj: "+stack.pop());
       }   System.runFinalization();
       System.gc();   MyStack s=new MyStack();
       for(int i=0;i<200;i++){
        s.push(Integer.toString(i));
      }  while(s.size!=0){
        System.out.println(" size: "+s.size()+" obj: "+s.pop());
       }
      }
    }