Buscar

Atividade Lista

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

#Questao1
 def MultiplicaPar(self):
 atual = self.inicio
 sum = 0
 while atual != None:
 if atual.pegaDado()%2 == 0:
 sum = sum + atual.pegaDado()
 atual = atual.pegaProximo()
 return sum
#Questao2
 #Opção 5 - É impresso para P: 10, 29, 18, 8, 50, 25, 14, 23, 12, 11. (Topo)
#Questao3
class Aviao:
 def __init__(self):
 self.items = []
 def AdicionarAviao(self, nome, num):
 #Funcao adiciona um avião à fila de espera;
 aviao = (nome,num)
 self.items.insert(0,aviao)
 def AutorizarDecolagem(self):
 #Funcao autoriza a decolagem do primeiro avião da fila;
 return self.items.pop()
 def CacarPrimeiroAviao(self):
 #Funcao lista as características do primeiro avião da fila.
 print(self.items[-1])
 def Tamanho(self):
 #Funcao lista o número de aviões aguardando na fila de decolagem;
 return len(self.items)
 def TodosOsAvioes(self):
 #Funcao lista todos os aviões na fila de espera;
 for i in self.items:
 print(i)
#Questao4
 #Resposta : 11 e 29
#Questao5
 def Maior(self):
 atual = self.inicio
 maior = 0
 while atual != None:
 if atual.pegaDado() > maior:
 maior = atual.pegaDado()
 atual = atual.pegaProximo()
 return maior
#Questao6
#x1 e x2 são ListaNaoOrdenada;
#C é uma ListaNaoOrdenada;
 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 x1.Buscar(atualx2.pegaDado()) == False:
 self.Inserir(atualx2.pegaDado())
 if x2.Buscar(atualx1.pegaDado()) == False:
 self.Inserir(atualx1.pegaDado())
 atualx2 = atualx2.pegaProximo()
 atualx1 = atualx1.pegaProximo()
#Questao7
'''
Questao Ambigua
Fiquei na duvida em remover todos os elementos que se repetiam, sem deixar nem um
Ou remover os repetidos e deixar apenas 
'''
#Criei uma funcao para auxilar na busca de repetidos
 def Repetidos(self,item):
 #Se o item for repetido retorna a quantidade que este item 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()

Teste o Premium para desbloquear

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

Continue navegando