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

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].

Exercícios relacionados