【问题标题】:Java Simple Linked ListJava 简单链表
【发布时间】:2023-03-26 04:10:01
【问题描述】:

我正在大学学习数据结构课程,但我无法理解为什么我的单链表不遵循 FIFO 算法。

这是我的 Node/PSVM 类:

public class Node {

    protected int data;
    protected Node next;

    Node(int element){
        this.data = element;
        next = null;
    }



    public static void main(String[] args) {
        LinkedList ll = new LinkedList();

        ll.addElement(300);
        ll.addElement(600);
        ll.addElement(900);
        ll.addElement(1200);


        ll.printList();
    }
}

这是我的链表类:


public class LinkedList {

    // create a reference of type node to point to head
    Node head;

    // keep track of the size of ll
    int size = 0;

    void printList() {
        Node n = head;

        for (int i = 0; i < llSize(); i++) {
            System.out.print(n.data + " ");
            n = n.next;

        }
        System.out.println("");
    }


    int llSize() {
        return this.size;
    }

    boolean isEmpty() {
        return size == 0;
    }

    void addElement(int element) {

        if (isEmpty()) {
            head = new Node(element);

        } else {
            Node nNode = new Node(element);
            Node current = head;

            while(current.next != null){
                current = current.next;
            }

            current.next = nNode;

        }

        this.size++;

    }


}

如果这是一个基本问题/问题,请提前道歉。我问过我的教授,她给我发了一个 YouTube 链接,但确实没有帮助。

感谢您的宝贵时间。

【问题讨论】:

  • 无需道歉。但是您确实两次发布了相同的代码。您可能希望显示预期/实际输入和输出
  • 糟糕,抱歉。我刚刚对其进行了编辑并添加了我的 LL 课程。
  • 我没有在代码中看到错误。您从printList 通话中获得的输出是什么?您期待什么?旁注:将您的 main 放在 Node 类中有点奇怪 - 不是错误,只是意外。
  • 我也没有在您发布的内容中看到任何逻辑错误。但是有一个建议,保留对尾节点的单独引用会更有效,而不是每次添加元素时都遍历整个列表。
  • 感谢所有响应这是我的输出:1200 900 600 300 它不应该按照插入的顺序输出吗?先进先出?另外,我可以将我的 main 放在不同的文件中以保持独立。

标签: java algorithm data-structures linked-list singly-linked-list


【解决方案1】:

代码没有错误。

为了使列表表现得像 FIFO,节点将被添加到一端并从另一端删除。

因此,您必须实施删除操作。您可以维护对头节点和尾节点的单独引用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 2010-11-08
    • 2020-01-05
    • 2019-01-31
    • 2020-08-11
    • 1970-01-01
    • 2014-04-04
    相关资源
    最近更新 更多