Home › Forums › Fórum Estrutura de Dados e Algoritmos em Python: O Guia Completo › Exclusão de todos itens númereo procurado
Tagged: Implementação 4 – Exclusão
- This topic has 1 reply, 2 voices, and was last updated 5 years ago by Jones Granatyr. 
- AuthorPosts
- 16 de outubro de 2020 at 06:27 #21530Bom 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 16 de outubro de 2020 at 16:13 #21531Opa, 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 
- AuthorPosts
- You must be logged in to reply to this topic.