Как добавить 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.

это;

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

Источник: ledsshop.ru

Стиль жизни - Здоровье!