Вставка узлов в связанный список в алфавитном порядке - PullRequest
0 голосов
/ 06 февраля 2019

В настоящее время я пишу программу, которая вставляет строки в связанный список, но когда она вставляет строки, она сортирует их в алфавитном порядке (используя метод compareTo).Я пытаюсь охватить все возможные границы и в настоящее время застрял на том, как вставить новый узел, если он должен идти в начале списка (таким образом, переменная previous является нулевой).Это то, что я до сих пор:

public class LinkedList{
private Node root;
private Node tail;

public void add(String data){
    Node current = root;
    Node previous = null;
    Node newNode = new Node(data);
    if(root == null){
        root = newNode;
        tail = root;
        newNode.next = null;
        return;
    }
    for( ; current != null; previous = current, current = current.next){
        if(newNode.data.compareTo(current.data)<= 0){
            break;
        }
    }
    if(previous != null){
        newNode.next = current;
        previous.next = newNode;
        if(current == null) { 
            tail = newNode;
        }
    } else{ 
        // if Previous IS null
        previous = newNode;        //The code that does not work as expected
        newNode.next = current; 

    }
}

public static final void main(String[] args){
    LinkedList list = new LinkedList();
    // for(int i = 0; i < 10; i++){
    //     list.add("Item");
    // }
    list.add("Item1");
    list.add("Item2");
    list.add("Item4");
    System.out.println(list.toString());
    list.add("Item3");
    System.out.println(list.toString());
    list.add("Item3");
    System.out.println(list.toString());
    list.add("Item0");
    System.out.println(list.toString());


}

}

1 Ответ

0 голосов
/ 06 февраля 2019

Вам просто нужно вставить узел:

  else{ 
      // if Previous IS null
      newNode.next = root;
      root=newNode;
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...