我们从上一个分配中获得了以下用于单链表的代码,但我们应该添加getPrevious()
和setPrevious()
方法。以下代码适用于单链表,因为我完成了作业并得到了100%。
我在网上搜索并阅读了我的书,但找不到解决方案。
对于单链表,我将从头开始并迭代直到getNext() == current
或类似的东西。显然,这超出了双重链表的目的,所以任何想法?
public class Node
{
private Object item;
private Node next;
public Node()
{
this.next = null;
}
public Node(Object newItem)
{
this.item = newItem;
this.next = null;
}
public Node(Object newItem, Node newNext)
{
this.item = newItem;
this.next = newNext;
}
public Object getItem()
{
return this.item;
}
public void setItem(Object newItem)
{
this.item = newItem;
}
public Node getNext()
{
return this.next;
}
public void setNext(Node newNext)
{
this.next = newNext;
}
}
答案 0 :(得分:1)
您只需要添加一个类似于next
的额外成员,该成员将指向列表中的上一个节点。完成后,添加一个getter和setter将是微不足道的。
(当然,您需要更改链接列表的实现以正确填充此新成员。)
答案 1 :(得分:1)
那么......问题出在哪里?
Node previous;
public Node getPrevious() {
return previous;
}
public void setPrevious(Node node) {
this.previous = node;
}
如果要将列表设为doubly-linked-list
,则必须实现“其他”,反方向链接。您可以通过为每个节点添加nother字段来完成此操作。每次修改列表时,您还必须更新字段。