Блок разрыва программы в алгоритме сортировки - PullRequest
0 голосов
/ 18 апреля 2020

Я пишу алгоритм сортировки для программы стиля связанного списка, где элементы в списке содержат объекты CampSite. Получение типа сайта возвращает 1 или 0, где сайт 0 должен находиться в начале списка. В сортировке требуются другие факторы, но ни один из них не приводит к сбою программы. По какой-то причине этот блок в методе sortList () заставляет программу никогда не достигать GUI, несмотря на то, что IntelliJ говорит: «Сборка завершена успешно».

while (current != null) {
            index = current.getNext();
            while (index != null) {
                if (current.getData().getSiteType() > index.getData().getSiteType()) {
                    temp = current.getData();
                    current.setData(index.getData());
                    index.setData(temp);
                }
            }
        }

Может кто-нибудь помочь мне понять, почему это так?

1 Ответ

0 голосов
/ 18 апреля 2020

Вы никогда не увеличивали current и index в то время как l oop, что сделает его бесконечным l oop. Попробуйте увеличить значение индекса и тока, чтобы l oop мог существовать.

Следующие изменения кода могут помочь вам

       while (current != null) {
            index = current.getNext();
            while (index != null) {
                if (current.getData().getSiteType() > index.getData().getSiteType()) {
                    temp = current.getData();
                    current.setData(index.getData());
                    index.setData(temp);
                }
                index = index.getNext(); // increament the index of the list
            }
            current = current.getNext(); // increament the current of the list to avoid inifinite loop
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...