【问题标题】:Doubly Linked List not printing双向链表不打印
【发布时间】:2021-11-29 06:51:17
【问题描述】:

我现在正在处理一个双链表,我似乎无法打印链表包含的数据。
这是我的代码:

public class Box<E> {
private DoubleListNode<E> head;
private DoubleListNode<E> tail;
private int size;

public Box() {
    head = new DoubleListNode<E>();
    tail = new DoubleListNode<E>();
    size = 0;
}

private static class DoubleListNode<E> {
    private E myData;
    private DoubleListNode<E> myNext;
    private DoubleListNode<E> myPrev;

    public DoubleListNode() {
        this(null, null, null);
    }
    
    public DoubleListNode(DoubleListNode<E> prev, E data,
            DoubleListNode<E> next) {
        myData = data;
        myNext = next;
        myPrev = prev;
    }
}

public void addLast(E data) {
    DoubleListNode<E> newNode = new DoubleListNode<E>(tail.myPrev, data, tail);
    if(size == 0) {
        head = newNode;
    } else {
        tail.myNext = newNode;
        newNode.myPrev = tail;
    }
    tail = newNode;
    size++;
}

public void displayList() {
    if (head == null) {
        
    }
    DoubleListNode<E> temp = head;
    while (temp != null) {
        System.out.print(temp.myData + " --> ");
        temp = temp.myNext;
    }
    System.out.println("Null");
}

public static void main(String[] arg) throws FileNotFoundException {
    Box<Integer> dl = new Box<Integer>();
    dl.addLast(5);
    dl.addLast(10);
    dl.displayList();
}    

当我尝试打印链接列表时,程序一直在运行,但没有打印任何内容。我做错了吗?

【问题讨论】:

  • 尝试添加断点,看看程序何时卡住。 (在displayListaddLast 中):) [编辑:阅读代码后它不能卡在 addLast 中,但通常尝试了解问题发生在哪里]
  • 你熟悉一个叫做“调试器”的东西吗?此外,最古老的调试技术,打印到标准输出,仍然有效。

标签: java doubly-linked-list


【解决方案1】:

我运行你的代码。它无休止地打印

5 --> 10 --> 5 --> 10 --> 5 --> 10 --> ...

看来你需要替换这一行

DoubleListNode<E> newNode = new DoubleListNode<E>(tail.myPrev, data, tail);

DoubleListNode<E> newNode = new DoubleListNode<E>(tail, data, null);

换句话说,当你添加一个新元素时,你没有正确地将它与尾部元素链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多