Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
class No: def __init__(self,inidado): self.dado = inidado self.proximo = None def pegaDado(self): return self.dado def pegaProximo(self): return self.proximo def botaDado(self, novoDado): self.dado = novoDado def botaProximo(self,novoProximo): self.proximo= novoProximo class ListaNaoOrdenada: def __init__(self): self.inicio = None def Vazia(self): return self.inicio == None def Inserir(self, item): temp = No(item) temp.botaProximo(self.inicio) self.inicio = temp def Buscar(self, item): atual = self.inicio encontrou = False while atual != None and not encontrou: if atual.pegaDado() == item: encontrou = True else: atual = atual.pegaProximo() return encontrou def Tamanho(self): atual = self.inicio conta = 0 while atual != None: conta = conta + 1 atual = atual.pegaProximo() return conta def Imprimir(self): atual = self.inicio while atual != None: print(str(atual.pegaDado())) atual = atual.pegaProximo() def Remove(self, item): #Remove um item atual = self.inicio previo = None encontrou = False while atual != item and not encontrou: if atual.pegaDado() == item: encontrou = True else: previo = atual atual = atual.pegaProximo() if previo == None: self.inicio = atual.pegaProximo() elif atual != None: previo.botaProximo(atual.pegaProximo()) return encontrou def MultiplicaPar(self): #Soma os pares atual = self.inicio sum = 0 while atual != None: if atual.pegaDado()%2 == 0: sum = sum + atual.pegaDado() atual = atual.pegaProximo() return sum def Maior(self): #Retorna o maior item da lista atual = self.inicio maior = 0 while atual != None: if atual.pegaDado() > maior: maior = atual.pegaDado() atual = atual.pegaProximo() return maior def Posição(self, item): #Retorna a posição de um item atual = self.inicio pos = None cont = 0 while atual != None: cont +=1 if atual.pegaDado() == item: pos = cont atual = atual.pegaProximo() return pos def Repetidos(self,item): #Se o item for repetido retorna a quantidade que se repete atual = self.inicio cont = 0 while atual != None: if atual.pegaDado() == item: cont +=1 atual = atual.pegaProximo() return cont def RemoverRepetidos(self): #remove um item repetido deixando apenas um atual = self.inicio while atual != None: rep = self.Repetidos(atual.pegaDado()) if rep > 1: self.Remove(atual) atual = atual.pegaProximo() def RemoverTodosRepetidos(self): #remove todos os items que se repetem atual = self.inicio while atual!= None: rep = self.Repetidos(atual.pegaDado()) if rep > 1: while self.Buscar(atual.pegaDado()) != False: self.Remove(atual.pegaDado()) rep = self.Repetidos(atual) atual = atual.pegaProximo() def Uniao(self, x1, x2): atualx1 = x1.inicio atualx2 = x2.inicio while atualx1 != None: if atualx1.pegaDado() != None: self.Inserir(atualx1.pegaDado()) atualx1 = atualx1.pegaProximo() while atualx2 != None: if self.Repetidos(atualx2.pegaDado()) >= 1: self.Remove(atualx2.pegaDado()) if atualx2 != None: self.Inserir(atualx2.pegaDado()) atualx2 = atualx2.pegaProximo() def Interseccao(self, x1, x2): atualx1 = x1.inicio atualx2 = x2.inicio while atualx1 != None and atualx2 != None: if x1.Buscar(atualx2.pegaDado()) == True: self.Inserir(atualx2.pegaDado()) atualx2 = atualx2.pegaProximo() def Diferenca(self, x1, x2): atualx1 = x1.inicio atualx2 = x2.inicio while atualx1 != None and atualx2 != None: if x2.Buscar(atualx1.pegaDado()) == False: self.Inserir(atualx1.pegaDado()) atualx1 = atualx1.pegaProximo() def Contagem(self, ): self.qtdePar = 0 self.qtdeImpar = 0 atual = self.inicio while atual != None: if atual.pegaDado()%2 == 0: self.qtdePar += atual.pegaDado() elif atual.pegaDado()%2 !=0: self.qtdeImpar += atual.pegaDado() atual = atual.pegaProximo() return (self.qtdePar, self.qtdeImpar) def Iguais(self): umInicio = self.inicio atual = self.inicio tam = self.Tamanho() parar = False while tam != 0 and not parar: if umInicio.pegaDado() != atual.pegaDado(): parar = True return False tam -= 1 atual = atual.pegaProximo() return True def MediaValorAcima(self): sum = 0 atual = self.inicio while atual != None: sum +=atual.pegaDado() atual = atual.pegaProximo() media = sum/self.Tamanho() atual = self.inicio print('media é', media) while atual != None: if atual.pegaDado() >= media: print('Valor maior ou igual a media', atual.pegaDado()) atual = atual.pegaProximo() a = ListaNaoOrdenada() a.Inserir(4) a.Inserir(6) a.Inserir(5) print(a.MediaValorAcima())
Compartilhar