Buscar

No Lista Encadeada nao ordenada)

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())

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando