Java队列实现中的逐个错误
我是一个从头开始队列实现的初级程序员,由于某种原因,我犯了一个错误。这是我的班级:Java队列实现中的逐个错误,java,queue,Java,Queue,我是一个从头开始队列实现的初级程序员,由于某种原因,我犯了一个错误。这是我的班级: class Queue { // pointer to first node in stack public Node oldest; public Node youngest; public int queueSize = 0; // constructor public Queue(){ oldest = null; youngest = nu
class Queue
{
// pointer to first node in stack
public Node oldest;
public Node youngest;
public int queueSize = 0;
// constructor
public Queue(){
oldest = null;
youngest = null;
queueSize = 0;
}
public boolean isEmpty() {
return oldest == null;
}
public boolean add(Node newNode){
if(isEmpty()){
oldest = newNode;
}else{
newNode.next = youngest;
oldest.next = youngest;
youngest = newNode;
}
return true;
}
public Node remove(){
Node temp;
temp = oldest;
if( oldest != null){
oldest = oldest.next;
temp.next = null;
}
queueSize--;
return temp;
}
public void showQueue(){
Node p;
for(p = oldest; p != null; p = p.next){
p.toString();
}
}
}
如果我使用循环填充队列,然后执行showQueue(),我总是比应该的少一个。例如,这是我的主要观点:
// build the queue
for (int k = 0; k < 5; k++)
{
node1 = new Node();
queue2.add(node1);
}
//show the stack
queue2.showQueue();
//构建队列
对于(int k=0;k<5;k++)
{
node1=新节点();
队列2.添加(节点1);
}
//显示堆栈
queue2.showQueue();
给出了结果
(节点)(节点)(节点)(节点)(节点)
或者只有四个节点。这是怎么回事
提前谢谢 我想我明白了。在这篇文章的“排队”方法中使用了逻辑,并且能够消除错误:仍然不理解我的代码为什么不能工作,所以我希望得到任何解释!我不知道最小的应该是什么。您可能不应该有此字段。队列大小是递减的,但从不递增。既然最旧的是队列中的第一个节点,您需要一条注释来说明这一点,为什么不将其命名为
firstNode
?