2017-03-17 2 views
-1

Ich muss einen Absatz mit Wörtern aus einer Eingabedatei lesen. Erstellen Sie dann eine doppelt verknüpfte Liste mit den einzelnen gelesenen Wörtern, wobei die Wörter derselben Länge in aufsteigender Reihenfolge in derselben Liste platziert werden.mit doppelt verknüpften Liste, um einen Text zu verarbeiten

Also habe ich versucht, ein Array doppelt verknüpfter Liste zu erstellen, ich weiß, wie man die Wörter hinzufügt, aber ich kann sie nicht in aufsteigender Reihenfolge sortieren (wir müssen die Wörter beim Hinzufügen sortieren, nicht den Text dann sortieren Hinzufügen.)

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

Antwort

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

Versuchen insertAtRightSpot (Liste [s1 [i] .length()], s1 [i]) statt Liste [s1 [i] .length()]. ​​addlast (s1 [i]) Die Methode sucht nach dem ersten Element, das nicht kleiner ist als das, das Sie einfügen möchten, und fügt es direkt vor

+0

ein nswer so viel wie möglich – IsuruAb

+0

@Linusk Ich benutzte deine Idee und änderte sie ein wenig, aber es funktioniert immer noch keine Ideen würden geschätzt werden – fareed

+0

public static void addSorted (DoublyLinkedList Liste, String s) { \t \t String s1 = (String) (list.getFirst()); \t \t Zeichenfolge s2 = (String) (list.getLast()); \t \t if (s1 == null) { \t \t \t list.addFirst (s); \t \t} else if (s1.compareToIgnoreCase (n) <= 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 else { \t \t \t int i = 0; \t \t \t Zeichenfolge s3 = (String) (list.get (i)); \t \t \t while (s3.compareToIgnoreCase (s)> 0) { \t \t \t \t i ++; \t \t \t \t Bruch; \t \t \t \t \t Liste.add (s, i); \t \t} \t} – fareed

Verwandte Themen