Alô Higor On Wed, 4 Aug 2010 16:41:47 -0300 Higor <[email protected]> wrote:
> estou com um problema gigantesco aqui. Tendo a estrutura abaixo (Um List com > cada um dos elementos com um campo > CamadaSuperior que indica o seu superior): > > Empresa de Teste | Diretoria de teste | UN de teste | UR de teste > Empresa de Teste | Diretoria de teste | UN de teste | UR de teste | teste > Empresa de Teste | Diretoria de teste | UN de teste | UR de teste 2 > Empresa de Teste | > Empresa de Teste | Diretoria de teste > Empresa de Teste | Diretoria de teste | UN de teste > Empresa de Teste | Diretoria de teste | UN de teste | UR de teste 2 | teste 2 > > Assim acima tem-se uma List com 7 elementos e seus camadas superiores (Ex: > teste2 tem como camada superior > "UR de teste 2" que tem como camada superior "UN de teste"). > > Veja que um algoritmo anterior (que montou essa estrutura) percorre um banco > de > dados e vai da camada x até a camada y. > Ou seja, pode-se ver, da esquerda para direita, que sempre vamos até a camada > mais externa que é a empresa. > > Preciso fazer um algoritmo que nao replique as estruturas, assim seria exibido > apenas: > Empresa de Teste | Diretoria de teste | UN de teste | UR de teste | teste > Empresa de Teste | Diretoria de teste | UN de teste | UR de teste 2 | teste 2 > > Fiz um algoritmo mas ficou extremamente complexo muito dificil de manter, > alguem tem uma sugestao por favor? > > Agora pouco pensei em fazer uma List que armazene-os e tive as réplicas, mas > ainda nao fiz o algoritmo. > > Por favor dêem uma luz ai pessoal. Se a profundidade máxima dos níveis for constante, podes pegar todos os ramos com a profundidade máxima e eliminar as réplicas. Imagino que não deva ser, senão a solução seria muito fácil. :-) De forma geral, o problema parece ser de pesquisa caminhos em grafos. Mario -- http://parenteses.org/mario -- You received this message because you are subscribed to the Google Groups "Lisp-br" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/lisp-br?hl=en.
