Exclusão de todos itens númereo procurado

Home Fóruns Fórum Estrutura de Dados e Algoritmos em Python: O Guia Completo Exclusão de todos itens númereo procurado

Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #21530

    Bom dia

    Pensei numa lista onde eu tenha o mesmo número repetido, mas queira excluir todos que estou procurando, não somente o primeiro que encontrar, então pensei em chamar  o método de exclusão várias vezes, então pensei num modo recursivo, mas não deu muito certo, pois ele excluiu

    outros números da lista também

    vetor = VetorNaoOrdenado(10)
    vetor.insere(2)
    vetor.insere(3)
    vetor.insere(5)
    vetor.insere(8)
    vetor.insere(1)
    vetor.insere(7)
    vetor.imprime()
    0 - 2
    1 - 3
    2 - 5
    3 - 8
    4 - 1
    5 - 7
    vetor.insere(5)
    vetor.insere(3)
    vetor.insere(5)
    vetor.imprime()
    0 - 2
    1 - 3
    2 - 5
    3 - 8
    4 - 1
    5 - 7
    6 - 5
    7 - 3
    8 - 5
    Vejam que agora alguns números aparecem  mais de uma vez na lista, (3 e 5 por exemplo), então pensei implementar um outro método chamado excluir2 que excluiria todos números da lista que estou procurando, tentei implementar como abaixo:
     def excluir2(self,valor):
    posicao = self.pesquisar(valor)
    if posicao == -1:
    return -1
    else:
    for i in range(posicao,self.ultima_posicao):
    self.valores[i] = self.valores[i+1]
    self.ultima_posicao -=1
    while posicao != -1:
    posicao =self.excluir2(valor)
    
    , mas ao tentar chamar
    vetor.excluir2(5)
    vetor.imprime()
    0 - 2
    1 - 3
    2 - 8
    
     Realmente algo deu errado, sendo assim,  qual a melhor maneira de fazer o que estou querendo, por favor , não quero o código 
    pronto,mas somente alguma(s) dica(s), e se o modo recursivo não serve
    
    
    Grato
    #21531
    Profile photo ofjonesJones Granatyr
    Moderador

    Opa, boa tarde!

    Chamar a função mais vezes não é muito bom por causa do desempenho, pois precisará executar a pesquisa linear novamente a cada nova chamada. Ao invés de fazer a recursão, depois de apagar o primeiro número poderia criar um marcador e “reiniciar” o código (talvez uma estrutura de repetição)

    Jones

Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Você deve fazer login para responder a este tópico.