Vanilson 2 Denunciar post Postado Abril 25, 2010 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
quitZAUMMM 18 Denunciar post Postado Abril 26, 2010 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
Vanilson 2 Denunciar post Postado Abril 29, 2010 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
quitZAUMMM 18 Denunciar post Postado Abril 29, 2010 http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites