当前位置: 代码迷 >> J2SE >> 行列类,显示不能QAQ
  详细解决方案

行列类,显示不能QAQ

热度:3768   发布时间:2013-02-25 00:00:00.0
队列类,显示不能QAQ
Java code
------------QueuInterface.java-----------package com.Queue;//队列接口//interface QueueInterface {    public boolean isEmpty();//是否为空    public void addTail(String name,int number);//从尾部添加    public Man removeHead();//从头部移除    public void show();//显示每个队列元素}----------------Man.java-----------------package com.Queue;//队列元素public class Man {    private String name;    private int number;    public Man(String name)    { setName(name); }    public Man(int number)    { setNumber(number); }    public Man(String name, int number)    {        setName(name);        setNumber(number);    }    public void setName(String name)    { this.name=name; }    public void setNumber(int number)    { this.number=number; }    public String getName()    { return name; }    public int getNumber()    { return number; }}-----------QueueClass.java-----------------package com.Queue;//队列//public class QueueClass implements QueueInterface {    private int head;    private int tail;    private Man queue[];    public QueueClass()//初始化只能容纳4个元素    {        head=tail=0;        queue=new Man[4];    }    public boolean isEmpty()//判断是否为空    {        return (head==tail)?true:false;    }    public void addTail(String name,int number)//从尾部添加    {        if((tail+1)%queue.length==head)            System.out.println("队列满了     "+name+" "+number+"无法加入");        else            queue[(tail+1)%queue.length]=new Man(name,number);    }    public Man removeHead()//从头部删除    {        if(isEmpty())        {            System.out.println("队列是空的");            return new Man("");        }        else        {            head=(head+1)%queue.length;            return queue[head];        }    }    public void show()//显示队列元素    {        int p=head;        System.out.println("显示队列");        while(p!=tail)        {            p=(p+1)%queue.length;            System.out.println(queue[p].getName()+":"+queue[p].getNumber());        }        System.out.println();    }}---------------MyQueue.java---------------package com.Queue;public class MyQueue {    public static void main(String[] args)    {        QueueClass q=new QueueClass();        q.addTail("haha", 0001);        q.addTail("haha", 0002);        q.addTail("haha", 0003);        q.addTail("haha", 0004);        q.addTail("haha", 0005);//初始化队列只能容纳4个元素,这里不是应该报队列已满,但在这里没有显示        while(!q.isEmpty())        {            q.show();            System.out.println("移出"+q.removeHead().getName());        }    }}

上面的代码运行后什么结果也没有就结束了,不知道是哪里出错.
想要调试也不知道从何入手.
求前辈们指点,谢谢

------解决方案--------------------------------------------------------
这句有问题queue[(tail+1)%queue.length]=new Man(name,number);
------解决方案--------------------------------------------------------
不知楼主是否要这种效果?
Java code
队列满了     haha 5无法加入显示队列haha:1haha:2haha:3haha:4移出1显示队列haha:2haha:3haha:4移出2显示队列haha:3haha:4移出3显示队列haha:4移出4
  相关解决方案