Buscar

Como intercalar duas listas sequenciais e gerar uma terceira sequencial em C

💡 7 Respostas

User badge image

Bruno Lugarini

1 – Implementassem um TAD (Tipo Abstrato de Dados) para “Lista Estática” em C, com funções básicas do tipo (criar, inserir, remover, acessar, etc.);

2 – Implementassem algumas funções extras para este mesmo TAD:

  • Dada uma lista, verificar se ela está ordenada (crescente ou decrescente);
  • Dada uma lista, criar e retornar uma cópia da mesma;
  • Dadas duas listas, L1 e L2, criar uma terceira lista que contenha os elementos de L1 e L2 intercalados em ordem crescente, assumindo que L1 e L2 estão também em ordem crescente.

As duas questões acima foram implementadas em um só TAD, que é dividido em 2 arquivos: [cci]ListaEstatica.h[/cci] e [cci]ListaEstatica.c[/cci]. Começamos com o código do arquivo cabeçalho (header):

1
Dislike0
User badge image

Rafael Cardoso

lista intercala(lista l1, lista l2){
if(lista_vazia(l1)==1)
return l2;

if(lista_vazia(l2)==1)
return l1;
lista l3 = cria_lista();
int fim_lista_3=l1->fim+l2->fim;
int counter=0;
int i=0;
int aux=0;

while(counter if(i==l1->fim&&auxfim){
(l3)->no[(l3)->fim]=l2->no[aux];
(l3)->fim++;
aux++;
counter++;
}
else if(aux==l2->fim&&ifim){
(l3)->no[(l3)->fim]=l1->no[i];
(l3)->fim++;
i++;
counter++;
}
else if(l1->no[i]no[aux]){
(l3)->no[(l3)->fim]=l1->no[i];
(l3)->fim++;
i++;
counter++;
}else if(l1->no[i]>l2->no[aux]){
(l3)->no[(l3)->fim]=l2->no[aux];
(l3)->fim++;
aux++;
counter++;
}
}
return l3;
}
1
Dislike0
User badge image

Rafael Cardoso

Funcionou esse
1
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta.

User badge image

Outros materiais