Salve, sono una studente di Ing. Informatica alle prese per la prima volta con C. Ho un problema su una funzione che non riesco a risolvere. Data una lista di interi, ciò che dovrebbe fare tale funzione è inserire un nodo con valore x dopo ogni nodo che abbia valore y; nel caso non ci fossero nodi con valore y il nodo x va inserito in coda alla lista.
Posto qui di seguito la funzione scritta a me, su cui riscontro il seguente problema: se la mia lista è ad esempio composta da nodi con valore 5-10-4-10-10 e pongo y=10 e x=3, ciò che mi restituisce è 5-10-3-4-10-3. Ovvero inserisce il nodo x (3) solo dopo il primo nodo y e l'ultimo, ignorando eventuali altri nodi y in mezzo. Non riesco a capire dove sbaglio, ringrazio chiunque vorrà aiutarmi
Ho definito così struttura e puntatore al nodo:
typedef struct list{
int info;
struct list* next;
} lista;
typedef lista* plista;
http://pastebin.com/2XTRJVB