[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: freq_ABB



Tiago M. Silveira writes:
 > Yoshiharu Kohayakawa wrote:
 > 
 > > Tiago M. Silveira writes:
 > >  > Algumas perguntas sobre o freq_ABB que talvez valham para o freq também.
 > >  >
 > >  > 1. Observe:
 > >  >
 > >  > #define o n_comp++
 > >  > /* e em outro ponto do programa */
 > >  > if (o, (comp_res = strcmp(s, p->palavra )) < 0)
 > >  >
 > >  > Há necessidade ou algum benefício
 > >
 > > A construcao amarra bem (do ponto de vista estilistico) a comparacao e o
 > > incremento do n_comp.
 > >
 > >  > em usar essa construção ou eu poderia
 > >  > escrever direto n_comp++ dentro do IF?
 > >
 > > Dentro do if nao seria bom, pois o incremento ocorreria só quando a comparacao
 > > desse < 0!
 > 
 > Não, acho que eu me expressei mal. Queria saber se posso usar:
 > 
 > if (n_comp++, (compres = strcmp(s, p->palavra)) < 0)

Sim, sem duvida.  O "o" é apenas uma conveniencia.

 > >  > 2. Não entendi bem o processo que cria um nó novo:
 > >  >
 > >  > s_aux = (char *) malloc(strlen (s) + 1);
 > >  > strcpy(s_aux, s);
 > >  > t->palavra = s_aux;
 > >  >
 > >  > Não poderia usar t->palavra direto no lugar de s_aux, ja que os dois são
 > >  > do mesmo tipo e vão acabar apontando para a mesma cadeia?
 > >
 > > Eles nao apontam para a "mesma" cadeia.  Fazemos uma copia de s em s_aux.
 > > Isto é importante, como acredito que mencionei em sala.  Caso não fizéssemos
 > > uma copia de s, quando fizéssemos a leitura da proxima palavra (em s!)
 > > perderiamos a palavra lida anteriormente.
 > 
 > Tudo bem, desde que ela esteja armazenada em t->palavra, não?

Acho que isto foi bem explicado pelo Daniel.  Yoshi

 > --
 > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 > Tiago Minchillo da Silveira
 > Kiron Multimídia - http://www.kiron.com.br
 > Homepage pessoal em construção!!! Em breve divulgo o endreço.
 > Nick no IRC/ICQ: Duke Jeffrie - UIN: 9350490
 > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~