2011-05-29 112 views
1

如何在Java中構建addLast方法?我已經知道LinkedList有一個內置的方法,做到這一點)鏈接列表addLast方法

這是我已經試過:

public void addFirst(int d1, double d2) { 
    Link link = new Link(d1, d2); 
    link.nextLink = first; 
    first = link; 
     } 
public void addLast(int d1 , double d2){ 
    Link v = new Link(d1, d2); 
    v.nextLink = null; 
    tail.nextLink = v; 
    tail = v 

}

public void printList() { 
    Link currentLink = first; 
    System.out.print("List: "); 
    while(currentLink != null) { 
    currentLink.printlink(); 
    currentLink = currentLink.nextLink; 
    } 
     System.out.println(""); 
} 

addFirst方法的工作,但我不」不知道如何連接它們。

主:

LinkList list = new LinkList(); 
     list.addFirst(4, 4.04); 
     list.addFirst(5, 5.05); 
     list.addlast(3,4.5); 
     list.printList(); 

回答

1

你的問題似乎是在最後一行。你想

tail = v; 

v = tail; 

而且,你有

tail = link 

爲您addfirst僅方法的最後一行 - 爲什麼你這樣做還不清楚。您不需要在添加到前面時更新列表的尾部。

+0

仍然給我錯誤的答案:( – Moj 2011-05-29 01:30:24

+0

目前尚不清楚爲什麼會出現這種情況。也許你應該更新原來的職位,包括新的代碼? – pfhayes 2011-05-29 01:33:00

+0

沒錯PFHayes更正應該做的伎倆。如果你的測試代碼仍然返回false,可能在測試代碼或代碼的另一部分中存在錯誤 – Voo 2011-05-29 01:42:55

3

我意識到,這是一所學校分配,以便不給這裏的答案是要遵循的步驟:

  1. 檢查,如果列表爲空
  2. 如果列表爲空,套頭+尾指向同節點
  3. 遍歷所有元素
  4. 更新尾新節點

也沒有辦法了addfirst僅你有上面的方法會工作,你不斷重置尾部的值。

+0

沒有在附加一個時需要迭代所有元素元素添加到列表的末尾。他有尾巴參考... – 2011-05-29 14:35:07

+0

讓我換句話說,他沒有做足夠的檢查來證明他的方法中曾經設定過尾巴參考。 – Woot4Moo 2011-05-29 14:43:46

0
public void addLast(int d1, double d2){ 

    Node node = new Node(d1, d2); 
    Node temp = first; 
    while(temp.next!= null) { 
     temp = temp.next; 
    } 
    temp.next = node; 
} 
+0

你可以添加一個解釋它是如何工作的? – Peanut 2015-08-20 13:25:23