Oggi mi sono messo a studiare le code.
Ho scritto un po' di funzioni "secondarie" e adesso mi stavo cimentando a scrivere la funzione enqueue che dovrebbe inserire in coda un elemento, ma ho problemi a capire come comportarmi quando devo inserire un elemento nel caso la coda non sia vuota.
Vi posto il codice:
Cosa sbaglio??codice:void enqueue(coda *c, int el) { nodo *n = (nodo *) malloc(sizeof(nodo)); // alloco spazio per il nuovo elemento n->d = el; // inserisco il valore passato come input al nuovo elemento if (!coda_vuota(*c)) // se la pila non ha elementi entra nell'if... { c->testa = n; c->coda = c->testa; } else //...altrimenti...e qua ho problemi c->coda->next = n; /*La precedente riga è sicuramente sbagliata, ma non riesco a trovare una soluzione alternativa. Se stampo il contenuto della coda per vedere se tutto è ok la funzione per la stampa va in loop e stampa numeri in continuazione*/ c->num_elem++; }
Grazie

Rispondi quotando