Projete em pseudocódigo uma função recursiva duplicar(L) que recebe uma lista L de inteiros e retorna uma nova…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Explorar e construir a solução de problemas por meio da reutilização de partes de soluções existentes.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Projete em pseudocódigo uma função recursiva duplicar(L) que recebe uma lista L de inteiros e retorna uma nova lista em que cada elemento de L aparece duas vezes consecutivas, mantendo a ordem. Explique o funcionamento e indique a complexidade temporal.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Exemplo de solução em pseudocódigo: func duplicar(L): se L == [] então retorne [] senao h = primeiro(L) t = duplicar(resto(L)) retorne construir(h, construir(h, t)) (onde construir(x, lista) adiciona x no início da lista) Funcionamento: caso base trata lista vazia; no passo recursivo duplicar copia o primeiro elemento duas vezes (usando construções por precedência) e concatena ao resultado recursivo sobre o resto, preservando ordem. Complexidade: O(n) tempo e O(n) espaço adicional (n é o número de elementos de L), pois cada elemento gera um número constante de operações e a função produz uma nova lista proporcional ao tamanho de L.
Explicação
A solução apresentada utiliza recursão para duplicar cada elemento da lista, garantindo que a ordem original seja mantida. O caso base lida com a lista vazia, enquanto a chamada recursiva processa o restante da lista, construindo a nova lista com os elementos duplicados. A complexidade é linear, pois cada elemento é visitado uma vez, resultando em um tempo e espaço proporcionais ao tamanho da lista.
Raio-X da questão
função recursiva em pseudocódigo
avaliacao
funções recursivas · listas em programação
Revisar conceitos de recursão e manipulação de listas.
O aluno pode confundir a lógica de duplicação, criando uma lista com elementos em ordem inversa ou não duplicando corretamente.
ciencia_tecnologia
criatividade
abstrato
Questões parecidas com resolução
- Projete em pseudocódigo uma função recursiva subsequencias(L) que recebe uma lista L de inteiros e retorna a lista de…
- Projete em pseudocódigo uma função recursiva permutar(L) que recebe uma lista L com n elementos distintos e retorna uma…
- Projete um algoritmo em pseudocódigo que receba uma lista L de n inteiros e retorne uma nova lista em que todos os…
- Projete em pseudocódigo uma função recursiva maximo(L) que recebe uma lista não vazia de inteiros e retorna o maior…
- Projete em pseudocódigo uma função recursiva que verifica se uma lista de inteiros L está estritamente crescente (cada…
- Projete uma função recursiva em pseudocódigo flatten(L) que recebe uma lista L que pode conter inteiros e sublistas…
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
