- 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