вставка-сортировка в двусвязном списке - PullRequest
1 голос
/ 28 марта 2011

Вот попытка написать функцию сортировки вставок для двусвязного списка (DLL).Он смоделирован на вставке-сортировке, как известно для массивов .Я получаю NullPointerException.Зачем?

перед сортировкой список выглядит так: aaa zzz Ciao Salut Hi Hello

public static DLL sort(DLL list)
{
    DLLNode ptr2 = list.first.succ ;

    while (ptr2 != null)
    {
        DLLNode ptr1 = ptr2.pred ;
        String curr = ptr2.elem ;

        while (ptr1 != list.first && curr.compareToIgnoreCase(ptr1.elem) < 0)
        {
            ptr1.succ.elem = ptr1.elem ;
            ptr1 = ptr1.pred ;
        }
        ptr1.succ.elem = curr ;

        ptr2 = ptr2.succ ;
    }

    return list ;
}

Ответы [ 2 ]

0 голосов
/ 29 марта 2011

Вы можете попробовать распечатать свой список в обратном порядке, чтобы убедиться, что все ваши node.pred не равны нулю.

0 голосов
/ 29 марта 2011

Вы можете использовать отладчик или старый добрый метод System.out.println.

Места для просмотра:

  • curr до curr.compareTo...

  • ptr1.succ до ptr1.succ.elem = ...

  • ptr2 до ptr2.succ

  • ptr1 доptr1.elem

Но ваше исключение говорит вам, откуда возникло исключение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...