java - Java中的队列编程不会更新队列

标签 java

我想用Java编写一个enqueue(elem),所以我编写了以下模块:

public class Node{
    public int e;
    Node next;
    public Node(int e){
        this.e=e;
    }
}

现在我想使用链接列表来存储我的元素,所以我创建了一个带有 enqueue() 函数的类,如下所示:

 public class Queue{
        Node q;        //represents a queue 
        Node first;
         public void enqueue(int n){
            Node t=new Node(n);  //represents a temporal node
            if(q==null){
                first=t;
            }
            else{
                t.next=first;
                t=first;
            }
            q=t;  //to store the node into the queue
        }
}

但是当我想打印队列的元素时:

 public void print(){
            Node current=first;
            while (current!=null){
                System.out.println(current.e);
                current=current.next;
            }
        }

它只打印我输入的第一个元素,例如,如果我输入 10,20,30,40,它只打印 10。我做错了什么?

谢谢

最佳答案

您的队列类代码应如下所示。节点 first 将是第一个元素,q 将是最后一个元素。

public class Queue{
    Node q;
    Node first;
     public void enqueue(int n){
        Node t=new Node(n);
        if(q==null){
            first=t;
        }
        else{
            q.next=t;
        }
        q=t;
    }
     public void print(){
         Node current=first;
         while (current!=null){
             System.out.println(current.e);
             current = current.next;
         }
     }
}

关于java - Java中的队列编程不会更新队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56314748/

相关文章:

java - 使用多个文本字段进行正确的异常处理

java - 如何在 Java 中有效地从多个字符串创建一个字符串

java - com.google.common.cache.Cache 类未找到错误

java - 如果我使用类作为类型参数,如何在参数化类中创建该对象的实例?

java - 与灰熊一起运行 Jersey

java - EditText 输出不会返回小数(初学者 Q)

java - 具有两个角色的一个用户的输出

java - Scala 的 Set 中是否有类似于 Java 的 Set 中的 containsAll 方法的方法?

java - 从实体创建数据库表

Windows 上的 Java RS-232 通信