2012-12-16 137 views
2

我必須實現雙鏈表。 prepend的方法應該插入一個新的元素bevor現有的列表。但我不知道如何將新元素的引用「next」與舊列表的引用「prev」鏈接起來。 在此先感謝。 在雙鏈表中插入新元素

public class DoublyLinkedList { 

private String info; 
private DoublyLinkedList next; 
private DoublyLinkedList prev; 

public DoublyLinkedList(String info) { 
    this.info = info; 
    this.next = this.prev = null; 
} 

private DoublyLinkedList(String info, DoublyLinkedList prev, DoublyLinkedList next) { 
    this.info = info; 
    this.prev = prev; 
    this.next = next; 
} 

DoublyLinkedList prepend(String info) { 
    // Beginning of a list, insert new element 
    if (prev == null) { 
     prev = new DoublyLinkedList(info, null, next); 
    } else { 
     prev.prepend(info); 
    } 
    return prev; 
} 

回答

0

你需要通過設置新節點的next_link與當前節點的新節點與當前節點聯繫起來。

public class DoublyLinkedList { 
    ... 
    DoublyLinkedList prepend(String info) { 
     // Beginning of a list, insert new element 
     if (prev == null) { 
      // this is the changed line. 
      prev = new DoublyLinkedList(info, null, this); 
     } else { 
      prev.prepend(info); 
     } 
     return prev; 
    } 
} 
+1

@ M.ElSaka:謝謝非常多 –

+0

你能幫我用metode delete(int index):對於同樣的問題,我不知道如何實現它? –

2

首先命名你的班級DoublyLinkedNode。鏈接的這樣的對象系列將形成雙重鏈接列表

使用正確的類名非常重要。一旦你修復了你的nsme即節點而不是列表,問題應該容易得多。

在僞代碼:

  • 設定的預根到新節點
  • 設置新的下一個節點根
  • 組根新的節點