Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- nodoF* inserisci(nodoF*W, nodo*a) //W=lista finale che viene di volta in volta aggiornata
- {
- //caso base -> creazione nodoF alla fine
- if(W==0)
- {
- FIFO nuovaListaFine(a);
- nodoF* nuovoFine=new nodoF(nuovaListaFine,0);
- return nuovoFine;
- }
- //controllo se il nodo da inserire è già sulla lista W interessata => aggiungo in fondo
- if (a->info==W->fi.ultimo->info)
- {
- FIFO inserimentoFine=push_end(W->fi,a);
- W->fi=inserimentoFine;
- return W;
- }
- //ricorsione -> 1 parte controllo se esiste lista con campo maggiore di quella da inserire
- if(a->info>W->fi.ultimo->info)
- {
- nodoF* restoLista=inserisci(W->next,a); //!
- W->next=restoLista;
- return W;
- }
- //2 parte -> controllo se il nodo da inserire è minore di quelle già presenti
- else if(a->info<((W->fi).ultimo)->info)
- {
- FIFO nuovaLista(a);
- nodoF* collegaAllaLista=new nodoF(nuovaLista,0);
- collegaAllaLista->next=W;
- return collegaAllaLista;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement