spielzug* change_pointer(spielzug* liste, spielzug* change1, spielzug* change2) //liste zeigt auf das 1. Element der Kette, temp1 zeigt auf das element in der kette das mit einen anderen Element in der kette, wo change2 draufzeigt, vertauscht werden muss
{
spielzug* after1 = NULL;//element nach temp1
spielzug* before1 = NULL;//element bevor temp1
spielzug* after2 = NULL;//element nach change2
spielzug* before2 = NULL;//element bevor change2
spielzug* temp2 = NULL;//pointer zum zwischenspeichern von change2
spielzug* temp1 = NULL; //pointer zum zwischenspeichern von change1
before1 = change1->prev;
after1 = change1->next;
before2 = change2->prev;
after2 = change2->next;
temp1=change1;
temp2=change2;
if(change2->prev == NULL)
{
temp2->prev=before1;
after1->prev=temp2;
temp2->next=after1;
temp1->prev=before2;
temp1->next=after2;
after2->prev=temp1;
}
if(change1->prev == NULL && change2->prev != NULL) // hier geht er immer rein, aber soll nicht rein gehn...
{
before2->next = temp1;
temp1->prev = before2;
temp1->next = after2;
after2->prev = temp1;
temp2->prev=before1;
temp2->next=after1;
after1->prev=temp2;
}
if(change1->prev != NULL || change2 != NULL)
{
before2->next = temp1;
temp1->prev = before2;
temp1->next = after2;
after2->prev = temp1;
before1->next = temp2;
temp2->prev = before1;
temp2->next = after1;
after1->prev = temp2;
}
if(change1->prev == NULL)
{
liste=temp1;
}
if(change2->prev == NULL)
{
liste=change2;
}
return(liste);
}