У меня есть задание по 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
Источник: