Scusa il ritardo, con le feste di mezzo non sono più riuscito a connettermi!
Certo che ti sei spiegato anzi, i tuoi consigli sono stati fino ad ora chiarissimi! Effettivamente mi era sfuggito questo ragionamento!Originariamente inviato da MrX87
il for che ho inserito serve per mettere inizialmente a NULL tutti i puntatori...altrimenti se vai a cercare e la lista è vuota ti va in crash, e poi quando vai a fare la ricerca, fai un test prima su testa[i] per vedere se il puntatore non è NULL, e poi passi alla funzione testa[i], non testa[MAX]!
Inoltre devi mettere "+=" ovvero:
perchè deve sommare le occorrenze in occ, altrimenti va a contre le occorrenze in ogni singola lista! non so se mi sono spiegato!codice:occ = CercaOccorrenze(testa[i], n) + occ;
Mi sono aiutato con uno schemino grafico ed ho compreso la tua semplificazione ma a questo punto mi sorge una domanda: a cosa serve *temp? Non potrei fare la stessa identica cosa utilizzando solamente *cursore?Originariamente inviato da MrX87
Infine la funzione ricerca io la farei come l'hai fatta tu ma sl cn una piccola modifica:
codice:int CercaOccorrenze(nodo *cursore, int num) { nodo *temp; int trovato = 0; temp = cursore; while(temp != NULL) { if(temp->valore == num) { trovato++; } temp = temp->next; } return trovato; }
Intanto ti ringrazio per il tempo ed il supporto dedicatomi, senza il tuo aiuto mi sarei perso all'interno del codice!![]()

Rispondi quotando