2010-03-22 114 views
0

我正在编写一些代码,我需要将一个节点添加到双向链表中。这是我到目前为止的代码:在双向链表中添加一个节点

Node tempNext = cursor.getNext(); 
temp = new Node(item, null, cursor, tempNext); 
tempNext.setPrev(temp); 

哪里cursor是正确的之前在新添加的节点应该去的节点。

如何设置其他节点以正确维护双向链表的状态?

+0

目前尚不清楚你的问题是什么。我根据你接受下面的答案,用猜测编辑它。 – 2013-03-09 23:09:44

回答

6

写有意义的变量名称将永远帮助你,永远不会使用名字,如温度*:

protected void insertNodeAfter(Node currentNode, Node newNode) { 
    Node displacedNode = currentNode.getNext(); 
    currentNode.setNext(newNode); 
    newNode.setNext(displacedNode) 
    displacedNode.setPrev(newNode); 
    newNode.setPrev(currentNode); 
} 
+0

-1用功能代码回答作业问题。 – 2010-03-22 18:50:55

+0

你是对的比尔,我应得的。 – rodrigoap 2010-03-22 18:56:26

+0

@BillK查看常见问题。如果清楚地阐述了作业问题,并且可以作为其他人的有用参考资料,那么这些问题就不存在了。 – 2013-03-09 23:13:04

2

好像所有你需要补充的是

cursor.setNext(temp); 

你有一个具体的问题?

+0

所以: 节点tempNext = cursor.getNext(); temp = new Node(item,null,cursor,tempNext); \t \t \t \t \t \t tempNext.setPrev(temp); \t \t \t \t \t \t cursor.setNext(temp); 将成功添加节点到链接列表是否正确? – 2010-03-22 18:20:14

+0

它应该假设您正在使用的Node构造函数正确设置新节点的下一个和前一个节点。另外,@ rodrigoap对于有意义的变量名是绝对正确的。 – 2010-03-22 18:33:43

0
public void addItemBefore(int info) 
{ 
    previousItem = new ListItem(previousItem, info, this); 
}