Вопросы

Как добавить NODE в конец двойного связанного списка?

У меня есть задание по Java из класса. Речь идет о сотрудниках, поэтому есть три класса: Employee, EmployeeList и Nodes. Мне нужно сделать из этого двусвязный список. Связанный список — это пользовательский класс, созданный нами, а не предоставленный Java.

Теперь я застрял в методе add(Employee e). метод вводит параметры объекта Employee и должен быть добавлен в конец списка.

это код

public void add(Employee emp) {
    Node n = new Node(emp, null , null);
    if(isEmpty() == true) {
        setHead(n);
        setTail(n);
        n.setPrevious(null);
        n.setNext(n);
    }else {
        Node c = getTail();
        c.setNext(n);
        n.setPrevious(c);
        setTail(n);
    }
}

Проще говоря, когда список пуст, метод безупречно добавляет сотрудника в узел, даже когда я добавляю в список второго сотрудника, все в порядке; но когда я добавляю больше и пытаюсь получить его, я получаю неправильные результаты.

в основном, если список заполнен, то узлу c назначается конец списка. «Хвост или c» был равен нулю, но теперь это Node n. Узел n, поскольку это следующий элемент после хвоста, предыдущей ссылкой узла n является узел c, а хвост обновляется до узла n.

Что я здесь делаю неправильно? если я попытаюсь

list.getHead().getNext().getNext().getPrevious().getEmployee().getName());

где список = [а,б,в]; результат — c, где он должен быть b.

Читать:
Вызов функции Flutter Cloud с параметрами

это;

head = a, a.getNext().getNext() == c;
c.getPrevious() == b;

но я остаюсь с

Что не так в коде? Пожалуйста помоги. высоко ценится

Помимо следования данному коду, камера не поможет понять, что не так. if(isEmpty() == true) { setHead(n); установить хвост (п); n.setPrevious (нуль); n.setNext (нуль); // n.setNext(n); }   —  person Sabbib    schedule 14.01.2014

Что бы вы посоветовали там неправильного? Благодарность   —  person Sabbib    schedule 14.01.2014

Я хочу сказать… ваш код выглядит нормально, единственная логическая вещь, которую я могу понять из данного кода, — это когда isEmpty() имеет значение true, n.setNext() должно иметь нулевое значение вместо n. Исправить проблему будет сложно. Лучше поставить точку останова и запустить приложение в режиме отладки и посмотреть, где узлы неправильно назначаются/размещаются.   —  person Sabbib    schedule 14.01.2014

Можете ли вы опубликовать код для каждого метода, используемого здесь? getNext, stNxt, getPrevious, setPrevious, …   —  person Sabbib    schedule 14.01.2014

Я почему-то не могу выложить все здесь. dropbox.com/sh/tsxa1sjd72dm4gx/KBlF1b-qtA   —  person Sabbib    schedule 15.01.2014

Похожие записи

Подсказка Nebular Angular при отключенной кнопке не работает

admin

Указатели на шаблонный класс

admin

MySQL пропускает значения auto_increment (продолжение)

admin

присвоение значения индексу массива возвращает SIGSEGV; ошибка сегментации. | c

admin

Что представляет собой параметр, который я представляю в вызываемых функциях в Ride4dApps?

admin

OR-Tools: Как я могу не подсчитать время ожидания от депо до момента первого выхода?

admin