2
В основном, как указано, у меня есть собственная реализация дважды связанного списка, и я хочу, чтобы он сортировал объекты по мере их добавления, используя compareTo методы.Написание метода добавления для реализации двусвязного списка, который сортирует по мере добавления к нему объектов
public void add(E c)
{
Node<E> finger = head;
while (finger != null && ((finger.value().compareTo(c)) > 0))
finger = finger.Next();
if(finger != null && finger.Next() != null && finger.Previous() != null)
{
Node<E> n = new Node<E>(c);
n.setPrev(finger);
n.setNext(finger.Next());
finger.Next().setPrev(n);
finger.setNext(n);
count++;
}
else if(finger !=null && finger.Next() == null && finger.Previous() != null)
this.addLast(c);
else if(finger !=null && finger.Next() != null && finger.Previous() == null)
this.addFirst(c);
else{this.addFirst(c);}
}
Я затем запустить
DList<String> DD = new DList<String>();
DD.add("d");
DD.add("e");
DD.add("f");
DD.add("a");
DD.add("b");
DD.add("c");
DD.add("g");
DD.add("h");
for(int i = 0; i < DD.size();i++)
System.out.print(DD.get(i));
и выход hgcbafed.
Что здесь не так?
Вы пробовали переходить через ваш код с помощью отладчика, чтобы узнать, что происходит? –