Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

CrashBoy

Operações com Listas

Recommended Posts

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
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 - j
Nã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

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 - j
Nã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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.