Ir para conteúdo

POWERED BY:

Arquivado

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

Vanilson

[Resolvido] Inserir lista1 na lista2

Recommended Posts

Pessoal, fiz um exercicio de listas lineares e gostaria que dessem uma olhada e verem se tem algum erro...O exercicio diz o seguinte:

Dadas as listas lineares armazenadas nos vectores lista1 e lista2 , desenvolva um algoritmo

para inserir a lista1 na lista2 a partir da k_ésima posição.

 

Possivel Solução:

 

int função inserirelem(importa lista1,lista2,k)
parm tipolista lista1,lista2
     tipoitem k
{
     int i
     se vazia(lista1) então imprime("Erro:A lista a ser copiada está vazia")
     senão se cheia(lista2) então imprime("Erro:A lista a receber elementos está cheia")
     senão se(k<lista2.primeiro ou k>lista2.ultimo então imprime("Erro: Posição invalida")
     senão
     {
         para i de lista2.ultimo passo -1 ate k faça
             lista2.item[i+1]<-lista2.item[i]
         lista2.item[k]<-lista1
         lista2.ultimo<-lista2.ultimo+1
     } 
     retorna lista2
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom n sei se a sintaxe do jeito q você fez é assim msm, se for desconsidera oq vou dizer:

Laço para:

para <var> de <inicio> até <final> passo <incremento/decremento> faça
.
fim_para

e o lista2[k].item tem q receber um lista1[var].item tbm neh?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

para <var> de <inicio> até <final> passo <incremento/decremento> faça
.
fim_para
A sintaxe do ciclo para é mesmo essa que eu postei...Considera um array onde o ultimo elemento é 6 (lista2.ultimo) e nos queremos inserir o valor na posição 2(k), ele vai decrementar até 2 movendo os elementos para direita e se ele vai movimentar irá ganhar um novo elemento ou seja o array passa a ter tamanho 7 então eu devo receber o valor da posição passada e adicionar a nova posição ou seja o valor da posição 6+1 na lista2 vai armazenar o valor da posição anterior 6 (lista2.item[i+1]<-lista2.item)

 

e o lista2[k].item tem q receber um lista1[var].item tbm neh?

 

Sim é isso mesmo eu fiz algumas alterações no codigo e ficou da seguinte forma:

int função inserirelem(importa lista1,lista2,k)
parm tipolista lista1,lista2
     tipoitem k
{
     int i
     se vazia(lista1) então imprime("Erro:A lista a ser copiada está vazia")
     senão se cheia(lista2) então imprime("Erro:A lista a receber elementos está cheia")
     senão se(k<lista2.primeiro ou k>lista2.ultimo então imprime("Erro: Posição invalida")
     senão
     {
         para j de lista.primeiro-1 ate lista.ultimo-1 faça
         {
             para i de lista2.ultimo passo -1 até k+j faça
                 lista2.item[i+1]<-lista.item[i]
             lista2.item[k+j]<-lista1.item[j+1]
             lista2.ultimo<-lista2.ultimo+1
         }
     }
}
Acho que com isto tenho o meu problema resolvido...

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.