Hi miteinander...
habe in muehevoller Arbeit eine einfach verkettete Liste implementiert (beliebte Hausaufgabe).
Was mich jedoch schon seit Stunden wurmt, ist, wie man Listenelemente von Typ Comparable,
bzw. beliebigen Typs, miteinander vertauscht. (z.B. um einen Sortieralgorithmus zu implementieren).
Scheint in Gegensatz zu nem Array nicht ganz so leicht mit XOR zu realisieren.
Mein Ansatz ist wohl auch eher schlecht als recht, reicht aber sicherlich aus, um mich zu maßregeln...
Achja, eventuelle Abruchbedingungen hab ich bislang auch außen vor gelassen!
Waere schon, wenn mir da ein geschultes Auge weiterhelfen koennte.
Habt Dank...
chrizz
habe in muehevoller Arbeit eine einfach verkettete Liste implementiert (beliebte Hausaufgabe).
Was mich jedoch schon seit Stunden wurmt, ist, wie man Listenelemente von Typ Comparable,
bzw. beliebigen Typs, miteinander vertauscht. (z.B. um einen Sortieralgorithmus zu implementieren).
Scheint in Gegensatz zu nem Array nicht ganz so leicht mit XOR zu realisieren.
Mein Ansatz ist wohl auch eher schlecht als recht, reicht aber sicherlich aus, um mich zu maßregeln...
Code:
public void swapPosition(int index1, int index2){
Node temp;
Node swapElem1 = head; //head ist der anfang der liste
Node swapElem2 = head;
for(int i= 1;i<index1-1;i++){
if(index1 == 1){
swapElem1= head; break;
}
swapElem1 = swapElem1.next;
}
for(int j = 1;j<index2-1;j++){
if(index2 == 1){
swapElem2 = head; break;
}
swapElem2 = swapElem2.next;
}
temp = swapElem2.next; //schaetze hier und im folgenden liegt der fehler
swapElem2.next = temp.next;
temp.next = swapElem1.next;
swapElem1.next = temp;
}
Achja, eventuelle Abruchbedingungen hab ich bislang auch außen vor gelassen!
Waere schon, wenn mir da ein geschultes Auge weiterhelfen koennte.
Habt Dank...
chrizz