2014-10-31 101 views
0

我正在創建一個鏈接列表。我已經完成了大部分課程,只是無法弄清楚一些部分。鏈接列表,添加對象im正確的排序位置

我試過不同的代碼,但我不知道什麼是正確的,以及如何去做。

任何人都可以請幫助我。

public class LinkedList<T> implements LinkedListADT<T> { 

    private int count; // the current number of elements in the list 
    private LinearNode<T> list; // pointer to the first element 
    private LinearNode<T> last; // pointer to the last element 

    /* 
    * Create an empty list first 
    */ 
    public LinkedList() { 
     this.count = 0; 
     this.last = null; 
     this.list = null; 
    } 

    // 1. add to end of list 
    public void add(T element) { 
     LinearNode<T> node = new LinearNode<T>(element); 

     if (size() == 0) { 
      this.last = node; // This is the last and the 
      this.list = node; // first node 
      this.count++; 
     } // end if 
     else if (!(contains(element))) { 
      last.setNext(node); // add node to the end of the list 
      last = node; // now make this the new last node. 
      count++; 
     } // end if 
    } 
} 

如何在列表中正確的排序位置添加對象。這是我有,但無法弄清楚正確的代碼。

/* 
* 2. add in correct sorted position 
*/ 
    public void addSorted(T element) { 
    LinearNode<T> node = new LinearNode<T>(element); 

    } 

回答

0

import java.util。*;公共類LinkedListDemo {公共靜態無效的主要(字符串參數[]){/ /創建一個鏈接列表LinkedList ll = new LinkedList(); //將元素添加到鏈接列表ll.add(「F」); ll.add( 「B」); ll.add( 「d」); ll.add( 「E」); ll.add( 「C」); ll.addLast( 「Z」); ll.addFirst( 「A」); ll.add(1,「A2」); System.out.println(「原始內容ll://從鏈接列表中移除元素ll.remove(」F「); ll.remove(2); System.out.println(」de + ll之後的內容); //刪除第一個和最後一個元素ll.removeFirst(); ll.removeLast(); System.out.println(「刪除第一個+ ll後的ll」); //獲取並設置一個值Object val = ll.get (2); ll.set(2,(字符串)VAL + 「已改變」);的System.out.println( 「變更後LL:」 + LL); }}

輸出:

原始內容ll:[A,A2,F,B,D,E,C,Z]刪除後的內容:[A,A2,D,E,C,Z ll首先和最後刪除後:[A2,D ,E,C] ll:[A2,D,E改變,C]

+0

我已經見過這種方式,但它不是我在做什麼,並且不能在此工作 – 2014-10-31 03:47:28

0

您首先遍歷列表,直到您到達應該輸入的位置,然後將該節點及其之前的節點保存到變量中並添加到變量中。

注意:根據它是第一個,最後一個還是中間節點,它會添加不同的內容,因此請確保您有選擇語句來檢查該內容。

+0

taverse是什麼意思? – 2014-10-31 03:48:23

+0

通過列表並在每個點上測試以查看它是否是要插入的節點的正確位置(通常通過使用lopp並檢查是否使用了任何變量來對它們進行排序的次數小於後面的節點一旦你到達正確的位置,它將自動停止循環,只要你已經使用變量來保存當前節點和前一個節點的位置,你可以在該位置插入節點) – yitzih 2014-10-31 03:49:51