Мое первое задание в моем классе программирования касается написания кода для Doubly Linked List, который включает в себя запись добавления, удаления, размера, итератора, итератора last и функции поиска итератора. Я провел 3 часа и не понял, где это понимать. Я понимаю, что произойдет, если я увижу это на картинке. Но моя проблема заключается в переводе кода на код. Это то, что у меня есть до сих пор:Как написать базовые функции двойного связного списка в Java?
public class DoublyLinkedList<G> {
public class node {
G data;
node next;
node prev;
public node(G data, node next, node prev) {
this.data = data;
this.next = next;
this.prev = prev;
}
}
node header;
node footer;
public DoublyLinkedList() {
header = new node(null, null, null);
footer = new node(null, header, null);
header.next = footer;
}
public void add(G data) {
header.next = new node(data, footer.prev, footer);
}
public int size() {
node current = header.next;
int quanity = 0;
if (current == null) {
return 0;
}
while (current != null) {
current = current.next;
quanity++;
}
return quanity;
}
public static void main(String args[]) {
DoublyLinkedList<Integer> test = new DoublyLinkedList<Integer>();
//test.add(new Integer(2));
//test.add(new Integer(22));
//test.add(new Integer(222));
System.out.println(test.size());
}
}
Как вы можете видеть, я использую main() для проверки всего. Из того, что мне сказал мой учитель, мой конструктор и класс узлов выглядят отлично. Тем не менее, я знаю, что либо добавление, либо размер не являются правильными, потому что, когда я проверяю это, когда в списке нет узлов, он ничего не отображает, но он должен показывать 0 правильно? Я имею в виду, если предположить, что мой код размера прав, и я не уверен.
И всякий раз, когда я добавляю узел, независимо от того, сколько я добавляю, он всегда отображает 1. Таким образом, либо как добавление, либо размер разбиты, либо оба. Я не писал других функций, поскольку это не имеет никакого смысла, пока я не выберу их. Пожалуйста, помогите мне понять это! Спасибо.
время познакомиться с отладчиком. –
1) переосмыслить свой метод 'add()', работать через ссылки после того, как вы добавите пару вещей в список вручную), его проще иметь поле 'size', которое обновляется каждый раз, когда вы добавляете против recalcultaing. – vandale
Спасибо вам большое. много !!! Я попробую это. :) –