2017-03-17 83 views
-1

我必須從輸入文件中讀取包含單詞的段落。然後創建一個雙向鏈表,其中包含相同長度的單詞按照升序排列在同一列表中的不同單詞。所以我試圖創建一個雙向鏈表的數組,我知道如何添加單詞,但我無法按升序對它們進行排序(我們必須在添加它們時對單詞進行排序,而不是對文本進行排序,然後添加。)使用雙向鏈表處理文本

int x = max(s); 
DoublyLinkedList[] list = new DoublyLinkedList[x]; 
     for (int i = 0; i < list.length; i++) { 
      list[i] = new DoublyLinkedList(); 
     } 

public static void m(DoublyLinkedList[] list, String s) { 

     String[] s1 = s.split(" "); 

     for (int i = 0; i < s1.length; i++) { 
      list[s1[i].length()].addLast(s1[i]); 

     } 
    } 

    public static int max(String s) { 
     String[] s1 = s.split(" "); 
     int max = s1[1].length(); 
     for (int i = 0; i < s1.length; i++) { 
      if (s1[i].length() > max) { 
       max = s1[i].length(); 
      } 
     } 
     return max + 1; 
    } 

回答

0
public static void insertAtRightSpot(DoublyLinekdList list, String s){ 
    int i = 0; 
    boolean inserted = false; 
    while(i<list.length()){ 
     if(list.get(i).compareTo(s) < 0){ 
     i++; 
     } else { 
     list.insertAt(s, i); 
     inserted = true; 
     break; 
     } 
    } 
    if (!inserted) list.addLast(s); 
} 

嘗試代替列表[S1 [I]。長度()] insertAtRightSpot(列表[S1 [I]。長度()],S1 [1])。addlast僅(S1 [i]) 該方法搜索第一個不小於您要插入的元素,並在

+0

之前插入它請描述您的a nswer儘可能 – IsuruAb

+0

@Linusk我用你的想法,改變了一點,但它仍然沒有工作任何想法,將不勝感激 – fareed

+0

公共靜態無效addSorted(DoublyLinkedList列表,一個String){ \t \t字符串S1 =(字符串) (list.getFirst()); \t \t String s2 =(String)(list.getLast()); \t \t if(s1 == null){ \t \t \t list.addFirst(s); \t \t} else if(s1.compareToIgnoreCase(s)<= 0){ \t \t \t list.addFirst(s); \t \t} else if(s2.compareToIgnoreCase(s)> = 0){ \t \t \t list.addLast(s); \t \t} \t \t否則{ \t \t \t INT I = 0; \t \t \t String s3 =(String)(list.get(i)); \t \t \t而(s3.compareToIgnoreCase(S)> 0){ \t \t \t \t我++; \t \t \t \t break; \t \t \t} \t \t \t list.add(s,i); \t \t} \t} – fareed