使用双向链表来处理文本

时间:2017-03-17 14:07:10

标签: java string sorting data-structures linked-list

我必须阅读包含输入文件中的单词的段落。然后创建一个双向链表,其中包含读取的不同单词,其中相同长度的单词按升序排列在同一列表中。

所以我试图创建一个双向链表的数组,我知道如何添加单词但我不能按升序对它们进行排序。(我们必须在添加单词时对单词进行排序,而不是对文本进行排序然后添加。)

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;
    }

1 个答案:

答案 0 :(得分: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);
}

尝试insertAtRightSpot(list [s1 [i] .length()],s1 [i])而不是list [s1 [i] .length()]。addLast(s1 [i]) 方法搜索第一个元素,该元素不小于要插入的元素,并在

之前插入