2016-11-05 4 views
1

Je veux imprimer toutes les valeurs dans ma structure de données trie, ainsi que ce code est les parties du programme de dictionnaire.Teste la structure de données - Imprimer toutes les valeurs

void search(struct dictionary **current) { 
    if((*current)->is_end==1){ 
     printf("\n"); getchar(); 
    } 

    for(int i=0; i<26; i++){ 
     if((*current)->Children[i]!=NULL){ 
      printf("%c",i+(int)'a'); 
      search(&(*current)->Children[i]); 
     } 
    } 
} 

Je veux pousser les valeurs.

  1. "false"
  2. "échec"

mais quand je lance ce code, le programme montre que: ne parviennent lse

les parties "fa" de "faux" ne s'affiche pas car la récursivité ne recommence pas si is_end a été marqué.

+0

"* les parties" fa "de" false "ne s'affichent pas car la récursive ne recommence pas depuis le début si is_end a été marquée. *" - On dirait que vous avez déjà trouvé la réponse sur votre posséder. – Dolda2000

+0

Pourquoi passez-vous le double pointeur? –

Répondre

0

Vous n'avez pas besoin de redémarrer la récursivité depuis le début chaque fois que vous atteignez un nœud terminal. Vous pouvez simplement conserver le tampon avec le préfixe courant quand vous traversez le trie et imprimez son contenu entier chaque fois que is_end est vrai.