Exemplo n.º 1
0
void percorreAD(Trie t, funcVisita *v) {

  char buf[TAM_MAX_CADEIA];

  percorreAux((ImplTrie)t,v,buf,0);

}
Exemplo n.º 2
0
void percorreAD(Trie t, funcVisita *v) {
/* Visita, em ordem alfabética, as cadeias contidas na AD 't' e
   aplica, a cada cadeia, a função 'v', sob a forma "v(s)", supondo
   que 's' é um apontador para a cadeia que deve terminar com o
   caractere nulo '\0'.
*/
    char buf[TAM_MAX_CADEIA];
  
    percorreAux((ImplTrie)t, v, buf, 0);

} /* percorreAD */
Exemplo n.º 3
0
void percorreAux(ImplTrie t, funcVisita *v, char *buf, int m) {
/* Percorre a AD em ordem lexicográfica; constroi as cadeias em 'buf'
  e aplica a função 'v' quando termina uma cadeia, colocando no fim o
  caractere '\0'; 'm' é o índice do próximo caractere em 'buf'.
*/
    int i;

    /* Sempre que forma uma cadeia, a visita */
    if (t->fim) { 
        buf[m] = '\0';
        v(buf);
    }

    /* Verifica todas as subarvores dos nos para encontrar todas as cadeias */
    for (i = 0; i < TAM_ALFABETO; i++) {
        if (t->subarv[i] != NULL) {
            buf[m] = i + 'a';
            percorreAux(t->subarv[i], v, buf, m+1);
        }
    }
}