CrashBoy 0 Denunciar post Postado Março 19, 2007 Galera, sou novo por aqui... não sei como as coisas funcionam direito, mas tenho um grande problema pra resolver... São vários exercícios com Listas... Preciso de algoritmos abstratos de como fazer essas coisas: 1) Excluir eficientemente toda ocorrência de um elemento X de uma Lista L 2) Inverter os elementos de uma Lista L 3) Comparar duas Listas (L1 e L2) e verificar se são iguais 3) Duplicar a lista L 4) Concatenar duas Listas (L1 e L2) na Lista L1 5) Incluir um elemento X em uma Lista L ORDENADA 6) Intercalar duas Listas (L1 e L2) ordenadas, eliminando as duplicidades Pra tudo isso eu axu q fiz o primeiro... ExcluirLista(L, X) se listavazia(L) entao Retorne FALSO j <- 0 para i de L.inicio até L.final faça se L.elen(i) = X então L.elen(i) <- L.elen(i+1) j<- j+1 L.final <- L.final - j Retorne Verdadeiro Alguém pode ma ajudar!? Desde já agradeço... CrashBoy PS: Lista nesse caso é um tipo abstrato de dado (TAD) e tem como caracteristica: L.elen[ ] = Item da Lista L.inicio = inicico da Lista L.final = Final da Lista Compartilhar este post Link para o post Compartilhar em outros sites
Rafael D 0 Denunciar post Postado Março 20, 2007 Galera, sou novo por aqui... não sei como as coisas funcionam direito, mas tenho um grande problema pra resolver... São vários exercícios com Listas... Preciso de algoritmos abstratos de como fazer essas coisas: 1) Excluir eficientemente toda ocorrência de um elemento X de uma Lista L 2) Inverter os elementos de uma Lista L 3) Comparar duas Listas (L1 e L2) e verificar se são iguais 3) Duplicar a lista L 4) Concatenar duas Listas (L1 e L2) na Lista L1 5) Incluir um elemento X em uma Lista L ORDENADA 6) Intercalar duas Listas (L1 e L2) ordenadas, eliminando as duplicidades Pra tudo isso eu axu q fiz o primeiro... L.elen(i) <- L.elen(i+1)Você estria trocando um 4 por outro e continuaria percorrendo a lista. De uma revisada, pra ver se isso realmente acontece (posso ter me enganado), se acontecer e você não conseguir resolver eu te ajudo, agora n da pq eu to com poco tempo =P Neste trecho: j<- j+1 L.final <- L.final - jNão entendi muito bem, você estaria diminuindo o tamanho da lista de acordo com o número de elementos que foram substituidos, é isso? Enfim, mais tarde em casa eu olho direito esse caso, e se você tiver duvidas nos otros eu vo tentando ajudar tb, agora eu tenho que ir... flws t+ Compartilhar este post Link para o post Compartilhar em outros sites
CrashBoy 0 Denunciar post Postado Março 21, 2007 Opa, e ae.Em relação ao número 1:Pelo o que eu entendi do algoritmo acho que ele não trata essa situação:Vamos supor que a sua lista é: 1 - 2 - 3 - 4 - 4 - 4 - 5 - 6E o elemento que você quer retirar é o 4.Ao fazer: L.elen(i) <- L.elen(i+1)Você estria trocando um 4 por outro e continuaria percorrendo a lista. De uma revisada, pra ver se isso realmente acontece (posso ter me enganado), se acontecer e você não conseguir resolver eu te ajudo, agora n da pq eu to com poco tempo =P Neste trecho:j<- j+1 L.final <- L.final - jNão entendi muito bem, você estaria diminuindo o tamanho da lista de acordo com o número de elementos que foram substituidos, é isso?Enfim, mais tarde em casa eu olho direito esse caso, e se você tiver duvidas nos otros eu vo tentando ajudar tb, agora eu tenho que ir...flws t+Rafael D, o algoritmo serve apenas para excluir a primeira ocorrência do elemento dentro da lista...mas gostei da sua dica, já está sendo implementada essa mudança para que eu avalie o esforço computacional do novo algoritmo...desde já agradeço a atenção...atenciosamente,CrashBoyPS: Depois eu posto minha solução para outros problemas... Eu resolvi alguns... Compartilhar este post Link para o post Compartilhar em outros sites
Rafael D 0 Denunciar post Postado Março 22, 2007 Beleza, Quanto ao esforço computacional tente fazer esta eliminação percorrendo a lista só uma vez, para que seja linear. Qualquer coisa tamo ae http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites