Implemente uma lista dinâmica de números positivos em que os números ímpares fiquem todos juntos no início da lista e os pares fiquem todos juntos no final da lista
d. Implemente a função RETIRAR que retira da lista a primeira ocorrência de um determinado valor
d. Implemente a função RETIRAR que retira da lista a primeira ocorrência de um determinado valor
Passo 1
Beleza, vamos lá! A gente tem que implementar uma função chamada RETIRAR numa lista dinâmica de números positivos. Essa lista está organizada de modo que todos os números ímpares ficam juntos no começo e os pares no final. O conteúdo que vamos usar aqui é sobre estruturas de dados, especificamente listas dinâmicas, e vamos precisar entender como percorrer e modificar essa lista para remover um elemento.
Passo 2
Primeiro, precisamos entender como nossa lista está estruturada. Imagine que temos uma lista onde os ímpares estão bloqueados no início e os pares no final. Por exemplo:
[1, 3, 5, 2, 4, 6]
. Se queremos retirar um número, vamos procurar por ele nessa lista.Passo 3
A função RETIRAR vai receber um valor que queremos remover. Vamos começar procurando pela primeira ocorrência desse valor na lista. Para isso, a gente percorre a lista do começo ao fim.
Passo 4
Durante a busca, se encontrarmos o valor que queremos remover, precisamos “pular” ele da lista. Se estiver usando um array, isso significa que vamos deslocar todos os elementos que vêm depois desse valor uma posição para a esquerda, para preencher o espaço vazio.
Passo 5
Também precisamos cuidar de alguns detalhes, como o tamanho atual da lista. Se não encontrarmos o valor, a lista permanece a mesma. Além disso, se a lista estiver vazia, não há nada para remover, então a função apenas retorna sem fazer nada.
Passo 6
Vamos colocar isso em prática com um exemplo de código em Python:
class ListaDinamica:
def __init__(self):
self.itens = []
def adicionar(self, numero):
if numero % 2 != 0:
# Inserir ímpar no começo
self.itens.insert(0, numero)
else:
# Inserir par no final
self.itens.append(numero)
def retirar(self, valor):
for i in range(len(self.itens)):
if self.itens[i] == valor:
# Remove o elemento da lista
del self.itens[i]
print(f'Valor {valor} removido da lista.')
return
print(f'Valor {valor} não encontrado na lista.')
# Exemplo de uso:
lista = ListaDinamica()
lista.adicionar(1)
lista.adicionar(2)
lista.adicionar(3)
lista.adicionar(4)
lista.adicionar(5)
print("Lista antes de retirar:", lista.itens)
lista.retirar(3)
print("Lista depois de retirar:", lista.itens)
Resposta
O código acima define uma classe
ListaDinamica
com métodos para adicionar e retirar elementos. A função retirar
percorre a lista, encontra a primeira ocorrência do valor especificado e o remove. Se o valor não for encontrado, informa o usuário. No exemplo fornecido, ao retirar o número 3
, a lista passa de [5, 3, 1, 2, 4]
para [5, 1, 2, 4]
.