Visualizzazione dei risultati da 1 a 9 su 9

Visualizzazione discussione

  1. #2
    Utente di HTML.it L'avatar di Nikopol
    Registrato dal
    Jan 2011
    Messaggi
    120
    Ciao,
    non conosco bene la sintassi del c++ ma posso dirti che c'è un errore nell'algoritmo per il conteggio delle chiavi che iniziano con 3.
    Ciò che stai facendo al momento è contare quanti nodi adiacenti, partendo dalla root, hanno la chiave che inizia per 3.
    Ovvero
    codice:
     if (raiz->clave[0]==3)
         count = 1 + cuentaDNI3Aux(raiz->izq) + cuentaDNI3Aux(raiz->der);
    se il nodo corrente ha la chiave che inizia con 3 allora:
    se i diretti figli hanno la chiave che inizia con 3 allora incremento di 1 il numero di occorrenze trovate nei figli
    altrimenti interrompo la ricorsione e restiruisco solo le occorrenze trovate fino a quel momento.

    Quindi se la chiave della root non inizia con 3 restituirai sempre 0.

    Quello che devi fare è (in pseudocodice):
    codice:
    contaOccorrenze(nodo corrente)
         int count; 
         if(corrente == null){
               count = 0;
         }
         else{
               count = contaOccorrenze(figlio sinistro) + contaOccorrenze(figlio destro);
               if(chiave di corrente inizia con 3)    
                   count++;
         }
         return count;

    Ultima modifica di Nikopol; 29-11-2015 a 02:31
    La Guida Galattica è infallibile.
    È la realtà, spesso, ad essere inesatta.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.