2010-03-22 107 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); 
}