Inserire un nuovo elemento nella lista durante un ciclo for

di il
5 risposte

Inserire un nuovo elemento nella lista durante un ciclo for

Ciao a tutti,
ho questo problema:
devo inserire degli elemento in coda di una lista concatenata.
L'inserimento avviene tramite la selezione di alcune caratteristiche di 2 elementi della lista.
Cioè faccio un ciclo for ("primo for") per selezionare il primo elemento. Selezionato il primo faccio partire un ciclo for innestato ("secondo for") da questo elemento fino alla fine.
Selezionato anche il secondo elemento, vorrei aggiungere un elemento in coda alla lista, ma poi ricominciare il ciclo for (il "primo for") dove ero rimasto per poter aggiungere altri elementi.
Qual'è il metodo più semplice?

for (r1 = first ; r1->next != NULL ; r1 = r1->next){
				if (r1->life[4] !=1){ 
		    		r1->life[4]=1;
		    		}
				
		    	Elem* r2=r1;
		    	for(r2=r1; r2->next !=NULL; r2=r2->next){
		    		if (r2->life[4] !=1){ 
				    	r2->life[4]=1;
				    	break;
		    		} 
		    	}
		    
			}

dove e come dovrei inserire la parte del codice seguente?

 e->next = malloc(sizeof(Elem));
			    e = e->next;
			    e->life[1]=0;
			    e->life[2]=0;
			    e->life[3]=0;
			    e->life[4]=1;
			    e->next = NULL; 
-premetto che ho semplificato di molto il codice,è solo per fare capire come sono innestati i cicli for-
Grazie mille a tutti!

5 Risposte

Devi accedere o registrarti per scrivere nel forum
5 risposte