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.

Responder a