Diese Einfügesortierung gehört zu einer doppelt verknüpften Liste. Es scheint nichts auszudrucken. Tut mir leid, wenn das chaotisch ist. Ich bin ziemlich neu beim Posten von Dingen. Ich habe es debugged, indem ich in SYSOUT setzte. Ich glaube, dass es ein Problem mit dem Austausch gab, den ich verwendete sysout & Ich bemerkte, dass das dort war, wo das Problem auftrat. Jede Hilfe würde sehr geschätzt werden. Ich habe auch meine App-Klasse überprüft, die in Ordnung scheint.Einfügesortierung funktioniert nicht in einer Doppellinkliste
public boolean insertionSort()
{
if (getFirst().next != null)
{
return false;
}
Link current = getFirst().next;
Link current2 = current;
while(current != null){
current2 = current;
while(current2.prev != null){
int tempID = Integer.valueOf(current2.Data.getID());
int temp2ID = Integer.valueOf(current2.prev.Data.getID());
if(tempID < temp2ID)
{
swap(current2, current.prev);
}
current2 = current2.prev;
}
current = current.next;
}
return true;
}
public void swap(Link x, Link y)
{
Link previousNode1 = x.prev;
Link nextNode1 = x.next;
Link previousNode2 = y.prev;
Link nextNode2 = y.next;
if (x.next == y || y.next == x)
{
previousNode1.next = y;
y.prev = (previousNode1);
nextNode2.next = (x);
x.next = (nextNode2);
x.prev = (y);
y.next = (x);
}
else
{
y.prev = (previousNode1);
y.next = (nextNode1);
nextNode1.prev = (y);
previousNode1.next = (y);
x.prev = (previousNode2);
x.next = (nextNode2);
nextNode2.prev = (x);
previousNode2.next = (x);
}
} // end swap