У меня возникли некоторые проблемы с подсчетом элементов моего двусвязного спискаПоиска Длина двусвязного Списка
здесь класс узла:
public class Node {
private Node previous, next;
private Object data;
public Node(Object data) {
this.data = data;
}
public Node() {
}
public Node(Object data, Node previous, Node next) {
this.previous = previous;
this.next = next;
this.data = data;
}
public Node getPrevious() {
return previous;
}
public void setPrevious(Node previous) {
this.previous = previous;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}
и вот где я мои методы для моего дважды связанного списка
public class DList {
private Node base;
public DList() {
}
/**
* Return the number of elements in the list.
*/
public int size() {
int count = 0;
if (base == null)
return count;
else {
Node temp = base;
do {
temp = temp.getNext();
count++;
} while (temp != base);
}
return count;
}
}
при тестировании результат должен 5, но моя функция ничего не считает. Спасибо за помощь!
Если у вас нет кругового списка, ваше условие цикла неверно. Вероятно, это должно быть 'while (temp! = Null)' – nem035
Извините, что забыл упомянуть, это круговой список. Мой плохой :( –