A入站口                B出站口
------------           ------------------
5列火车                  出站口
------------           ------------------             +       +
             +   火  +   
             +   车  +(调度台)
             +   站  + 
一共有5辆火车。请问他们一共有多少种出站顺序。每次出站要求只能有一辆进调度台...要求用JAVA语言实现.
一定要用java.util.Stack类。多谢大家。我想不出来应该如何解决这道题目。希望高手能帮我一下.

解决方案 »

  1.   

    一定要用java.util.Stack类?
    题目要求吗?
    java里面实现栈要用LinkedList
      

  2.   


    package useful;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Stack;
    public class Attemper {

     Stack sk;
     List before;
     List after;
    static int count=0;
    static int attemperCount=0;
    Attemper(List before,Stack sk)
    {
    this.before=before;
    this.sk=sk;
    if(before.isEmpty())
    {
    count++;
    }else
    {
    next();
    }
    }
    void next()
    {

    for(int i=0;i<before.size();i++)
    {
    Stack sk1=(Stack)(sk.clone());
    List before1=new LinkedList();
    before1.addAll(before);
    sk1.push(before1.remove(i));
    new Attemper(before1,sk1);}
    if (!sk.isEmpty())
    {
    Stack sk1=(Stack)(sk.clone());
    List before1=new LinkedList();
    before1.addAll(before);
    sk1.pop();
    new Attemper(before1,sk1);
    }

    }


    public static void main(String[] args) 
    {
    List before=new LinkedList();
    before.add("第一辆火车 ");
    before.add("第二辆火车 ");
    before.add("第三辆火车 ");
    before.add("第四辆火车 ");
    before.add("第五辆火车 ");
    Stack sk=new Stack();
    new Attemper(before,sk);
    System.out.println(Attemper.count);
    }
    }