我试图打印一个双链接列表,从tail元素开始,以first元素结束。我下面的代码就是这样做的,但出于某种原因,我也返回了被删除的项目。当我从头到尾打印列表时,它不会这样做。Idk,如果是toString导致了这个或dequed方法。我把两者都包括在内。
public String toString() {
String result;
if (isEmpty())
return "empty";
else {
result = "";
DoubleNode current = tail;
while (current != null) {
result = result + current.getElement() + " ";
current = current.getPrev();
}
}
return result;
}
public Item dequeueBack() throws NoSuchElementException {
if (isEmpty())
throw new NoSuchElementException("deque is empty");
Item result = tail.getElement();
tail = tail.getPrev();
count--;
if (isEmpty())
head = null;
else
tail.setNext(null);
return result;
}
当你退出队列时,你不需要设置Prev,所以那些链接(你打印的是基于这些链接的)仍然有效。
在下面的双向链表示例中,我可以将节点添加到双向链表的前面和双向链表的末尾。我还可以向前遍历双向链表并成功打印节点的值。当我向后打印列表时,我的tail.previous值为空,我只能打印当前在尾部的节点值。请告诉我出了什么问题。谢谢。 测试代码如下:公共类DDLTest{
我有一个家庭作业要写“先到先得”和“循环模拟”,并对它们进行比较。我开始创建一个链表来制作事件列表。我已经实现了插入和打印列表功能,但无法正常工作。我的朋友告诉我使用双链表,所以我重新创建了链表,并试图使打印功能工作。我有一个关于插入函数的问题,因为我在while循环中的语句顺序有误。在修复了许多错误后,print函数会多次打印同一个节点,而不是整个列表。我不知道程序的哪一部分是错的。我认为我在i
我试图以相反的顺序打印一个链表,但实际上没有使用递归进行反转,但我的输出结果非常奇怪。看起来我的代码基本上选择了第一个节点,并在打印完链表的其余部分(按原始顺序)后将其打印出来。我所写的代码(据我所知)是正确的,并且与internet上解决此问题的代码相匹配。 这是我的代码: 以下是节点类: 这是我给出的输入,然后是输出: 这里发生的另一个奇怪的事情是,如果我改变递归的条件,假设我这样做: 然后是
我正试图把我的脑袋围绕着我在编程集中遇到的一个问题。 我们应该编写从文件中读取并打印出来的代码。我明白,我能做到。 他要我们做的是把它反向打印出来。 文件内容如下: 下面是改进后的代码,我尝试将其放入数组中。 数组中的数据没有打印出来。
我正在尝试反转一个链表,我为此编写了代码。但是,当我在反转后打印列表时,输出有点不完整。 产量:120 110 100