metodi ricorsivi
unknown
c_cpp
a year ago
1.8 kB
16
Indexable
int Lista::delricdisp(Cella* inizio){
if(!inizio || !inizio->next){
return 0;
}
Cella* daEliminare = inizio->next;
inizio->next = daEliminare->next;
int valoreDaEliminare = daEliminare->data;
delete daEliminare;
return valoreDaEliminare + delricdisp(inizio->next);
}
int Lista::delricpar(Cella* inizio){
if(!inizio || !inizio->next){
Cella* daEliminare = this->head;
this->head = this->head->next;
int valoreDaEliminare = daEliminare->data;
delete daEliminare;
return valoreDaEliminare;
}
if(inizio == this->head){
return delricpar(inizio->next);
}
Cella* daEliminare = inizio->next;
inizio->next = daEliminare->next;
int valoreDaEliminare = daEliminare->data;
delete daEliminare;
return valoreDaEliminare + delricpar(inizio->next);
}
void Lista::delelem10(Cella *inizio){
if(!inizio || !inizio->next){
return;
}
if(inizio == this->head && inizio->data >= 10){
Cella* daEliminare = this->head;
this->head = this->head->next;
delete daEliminare;
return delelem10(this->head);
}
if(inizio->next->data >= 10){
Cella* daEliminare = inizio->next;
inizio->next = daEliminare->next;
delete daEliminare;
return delelem10(inizio);
}
return delelem10(inizio->next);
}
void Lista::sorrt(Cella *attuale){
if(!attuale || !attuale->next){
return;
}
if(attuale->data > attuale->next->data){
int a=attuale->data;
attuale->data = attuale->next->data;
attuale->next->data = a;
sorrt(this->head);
}
sorrt(attuale->next);
}Editor is loading...
Leave a Comment