随笔-0  评论-0  文章-16  trackbacks-0
接口定义如下:
public interface IntStack {
    void push(int item);
    int pop();
}

实现接口的DynStack如下:
public class DynStack implements IntStack{
    private int stck[];
    private int tos;
    public DynStack(int size)
    {
     stck=new int[size];
     tos=-1;
    }
    public void push (int item)
    {
     if (tos==stck.length-1)
     {
      int temp[]=new int[stck.length*2];
      for (int i=0;i<stck.length;i++)
      {
       temp[i]=stck[i];
      }
      stck=temp;
      stck[++tos]=item;
     }
     else
     {
      stck[++tos]=item;
     }
    }
    public int pop()
    {
     if (tos<0)
     {
      System.out.println("Stack underflow");
      return 0;
     }
     else
     {
      return stck[tos--];
     }
    }
}

实现接口的FixedStack类定义如下:
public class FixedStack implements IntStack {
    private int stck[];
    private int tos;
    FixedStack (int size)
    {
     stck=new int[size];
     tos=-1;     
    }
    public void push(int item)
    {
     if (tos==stck.length-1)
     {
      System.out.println("Stack is null");
     }
     else
     {
      stck[++tos]=item;
     }
    }
    public int pop()
    {
     if (tos<0)
     {
      System.out.println("Stack underflow");
      return 0;
     }
     else
     {
      return stck[tos--];
     }     
    }  
}
主程序调用如下:
IntStack mystack;
     DynStack ds=new DynStack(5);
     FixedStack fs=new FixedStack(8);
     mystack=ds;
     for (int i=0;i<12;i++)
     {
      mystack.push(i);
     }
        mystack=fs;
        for (int i=0;i<8;i++)
        {
         mystack.push(i);
        }
     
        mystack=ds;
        System.out.println("value in dynamic stack:");
        for (int i=0;i<12;i++)
        {
         System.out.println(mystack.pop());
        }
        mystack=fs;
        System.out.println("value in fixed stack:");
        for (int i=0;i<8;i++)
        {
         System.out.println(mystack.pop());
        }
       

posted on 2012-07-03 12:13 jhtchina 阅读(756) 评论(0)  编辑  收藏 所属分类: jsp初学