2017-03-17 82 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