Ciao a tutti,
sto provando a scambiare 2 elementi di una lista ma non riesco a capire dove sbaglio, premetto che sono le prime volte!
vi posto il codice che ho prodotto:
typedef struct array *link;
struct array {
int key;
link next;
link prev;
};
void swap(link a, link b) {
link an=a->next;
link ap=a->prev;
link bn=b->next;
link bp=b->prev;
link tmp;
if (b!=NULL) {
if (a->prev==NULL){
b->prev=NULL;
a->prev=an;
b->next=a;
a->next=bn;
bn->prev=a;
}
else
{
b->prev=ap;
b->next=a;
a->prev=b;
a->next=bn;
bn->prev=a;
}
}
}
Naturalmente ho altre funzioni per creare e inserire nodi nella lista, ma il problema deve essere nello swap!
Grazie a tutti!