metodi ricorsivi
unknown
c_cpp
a year ago
1.8 kB
8
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