Acho que neste caso a ideia é pegar o primeiro elemento de uma lista e
coletar todas as listas que têm aquele mesmo elemento como o primeiro
elemento, e removendo este elemento de cada uma delas. Depois aplica a de
forma recursiva para esta lista coletada.

Você poderia colocar a impressão dos elementos usando essa mesma função, mas
daí também vai tem que passar como parâmetro o recuo necessário para
imprimir os elementos sempre que trocar de linha.

Na verdade acho que usando essa ideia nem precisaria do algoritmo anterior,
bastando não imprimir as listas que, após a recursão, ficam vazias, mas você
pode manter o algoritmo anterior por simplicidade.

Em 4 de agosto de 2010 20:30, Higor <[email protected]> escreveu:

> Fala Gustavo,
> puuuxaaa como posso lhe agradecer? Funcionou de forma perfeita. Bem melhor
> que a minha estrutura anterior.
> Ele realmente retornou um array com os dois arrays dentro de um array com a
> estrutura:
>
> 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
>
> Porém, eu preciso exibir da seguinte forma:
>
>
> Empresa de Teste | Diretoria de teste | UN de teste | UR de teste | teste
>
>                                                      UR de teste 2 | teste 2
>
> Ou seja, qdo os campos se repetirem eu preciso colocar um espaço em branco
> entre eles.
>
> Minha ideia é ordenar esse ArrayList de forma que os parecidos estejam
> proximos e
> troca-los por espaço em branco.
>
> Não sei se ele consegue ordenar o array desse jeito (colocando todas
> proximas uma das outras)
> acho que preciso mudar um pouco a estrutura. Vou dar uma testada nessa
> ordenacao. Depois
> possivelmente terei que comparar-los pra ver se sao iguais.
>
> Se alguem tiver uma dica eu agradeço.
>
> Mais uma vez obrigado Mario e Gustavo pela ajuda.
>
> Abraços.
> Higor
>
>
> Em 4 de agosto de 2010 17:13, Gustavo <[email protected]> escreveu:
>
> Olá, Higor,
>>
>> Que tal o seguinte: Chamemos a lista dada de ENTRADA e comece com SAIDA
>> sendo uma lista vazia. ENTRADA então é uma lista de listas.
>>
>> Fixe uma lista ENT da ENTRADA, verifique se ela é sublista de alguma lista
>> da SAIDA. Se não for, verifique se alguma lista SAI da SAIDA é sublista de
>> ENT, se for remova a lista SAI da SAIDA e, ao final, coloque ENT na SAIDA.
>>
>> Modificando um pouco, fica assim:
>>
>> 1 - Para cada lista ENT pertencente a ENTRADA faça
>>   2 - Seja PERTENCE <- FALSO
>>   3 - Para cada lista SAI pertencente a SAIDA faça
>>     4 - Se ENT é sublista de SAI então
>>       4.1 - PERTENCE <- VERDADEIRO
>>       4.2 - finalize o loop 3 (isto é, vá para 6)
>>     5 - Se SAI é sublista de ENT então
>>       5.1 - remova SAI de SAIDA
>>       5.2 - finalize o loop 3 (neste caso não precisa verificar o resto da
>> lista SAIDA)
>>   6 - Se PERTENCE = FALSO coloque ENT em SAIDA (senão chupe o dedo :P)
>> 7 - retorne SAIDA
>>
>> Gustavo.
>>
>> Em 4 de agosto de 2010 16:41, Higor <[email protected]> escreveu:
>>
>>>
>>> Olá Pessoal,
>>> 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.
>>>
>>> Abraços.
>>> Higor
>>>
>>>  --
>>> 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]<lisp-br%[email protected]>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/lisp-br?hl=en.
>>>
>>
>>  --
>> 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]<lisp-br%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/lisp-br?hl=en.
>>
>
>  --
> 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]<lisp-br%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/lisp-br?hl=en.
>

-- 
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