PROBLEMA Algoritmo ricerca occorenze con lista concatenata - C

Pubblicità
Posta il codice completo che stai usando attualmente. ;)

Codice:
tipo_risultato ContaRipetizioni(lista l){
    int MaxCount = 0;
    int memoria = 0;
    tipo_risultato risultato ;
   
    nodo *tempnodo2 = l.testa;                              //Crea testa del nodo2 collegato a tutti gli altri nodi tramite nodo
    while (tempnodo2!=NULL){                                //Finchè esiste tempnodo2

        nodo *tempnodo = l.testa;                           //Crea testa del nodo per confronto con tempnodo2
        int count = 0;                                      //Inizializza Counter a 0
        while (tempnodo!=NULL){                             //Finchè esiste tempnodo
            if (tempnodo->chiave == tempnodo2->chiave){     //Se la chiave ciclata da tempnodo è uguale alla chiave del nodo2
                count++;                                    //aumento il counter
            }
            tempnodo = tempnodo->next;                      //Passo al numero successivo della lista per verificarlo
        }
        // printf("count of %d is %d\n", tempnodo2->chiave, count);

        if (count > MaxCount){                              //Se il counter è maggiore di MaxCount (originarimente a 0)
            MaxCount = count;                               //settiamo MaxCount uguale al nuovo Count
        }
        tempnodo2 = tempnodo2->next;
    }
    printf("MaxCount is %d\n", MaxCount);
    risultato.numero = MaxCount;
    risultato.memoria = sizeof ;
}
 
Ti sto leggendo da cellulare, ma noto un sizeof all'ultima istruzione senza alcun argomento.
Domani quando sarò in pausa pranzo se non avrai risolto proverò a guardare. ;)
 
Mi sembra siano: risultato, maxCount, tempnodo2, memoria, che sono poi quelle riportate nel codice iniziale. Che problemi ti da in questo modo? Non dovresti averne. L'unico mio dubbio è relativo a quale conteggio devi mostrare, se riguarda tutte le allocazioni oppure no.

Riprendo un tuo intervento precedente:
Memoria infatti contiene la quantità totale di hash, size of di nodo (perchè di un tipo di una struct teoricamente equivalente a int?), di risultato (anche se non è ancora stato usato?) e memoria che è a 0.

Stampa i vari sizeof a video. La struct nodo ha un intero ed anche un puntatore a nodo.
Il fatto che memoria sia 0 non significa che non abbia un peso; il peso è int, solitamente 4byte.
 
Mi sembra siano: risultato, maxCount, tempnodo2, memoria, che sono poi quelle riportate nel codice iniziale. Che problemi ti da in questo modo? Non dovresti averne. L'unico mio dubbio è relativo a quale conteggio devi mostrare, se riguarda tutte le allocazioni oppure no.

Riprendo un tuo intervento precedente:


Stampa i vari sizeof a video. La struct nodo ha un intero ed anche un puntatore a nodo.
Il fatto che memoria sia 0 non significa che non abbia un peso; il peso è int, solitamente 4byte.
Tii rispondo solo ora, ne ho parlato direttamente con il docente e bisogna calcolare, come mi pare dicevi tu, tutte le variabili dichiarate nella funzione
 
Pubblicità
Pubblicità
Indietro
Top