• Matéria: Informática
  • Autor: FernandoGGGG
  • Perguntado 3 anos atrás

Desenvolva um algoritmo de PILHA e FILA em Python, obedecendo as regras a seguir:

O programa deve ser iniciado perguntando ao usuário, qual estrutura ele deseja (PILHA ou FILA).
Após a escolha, deverá ser exibido um menu com 3 opções: Adicionar número, excluir número e sair.
Os números da estrutura devem ser exibidos após qualquer operação.
Se for escolhida a opção de exclusão e o número não existir, deverá ser exibida uma mensagem.
As estruturas não devem conter um limite.
O menu deve ser obrigatoriamente exibido após cada operação da estrutura.

Respostas

respondido por: mariocertto
1

Resposta:

Explicação:

def add(list):

   n = int(input('Numero: '))

   list.append(n)

   return list

def delete(list, structure):

   try:

       if(structure == '1'):

           structure_name = 'Pilha'

           list.pop()

       else:

           structure_name = 'Fila'

           list.pop(0)

   except IndexError:

       show_result('Erro: {} vazia!'.format(structure_name))

   return list

def controller(list, structure, operation):

   if(operation == '1'):

       return add(list)

   if(operation == '2'):

       return delete(list, structure)

def get_operation():

   print('--------------------------------------------------')

   print('1 - ADICIONAR NUMERO')

   print('2 - EXCUIR NUMERO')

   print('S - SAIR')

   print('--------------------------------------------------')

   operation = input('Operaçao desejada: ')

   if(operation not in ('1', '2', 's', 'S')):

       show_result('Erro: Opção inválida!')

       return get_operation()

   return operation

def get_structure():

   print('--------------------------------------------------')

   print('1 - PILHA')

   print('2 - FILA')

   print('--------------------------------------------------')

   structure = input('Estrutura desejada: ')

   if(structure not in ('1', '2')):

       show_result('Erro: Opção inválida!')

       return get_structure()

   return structure

       

def show_result(result):

   print('==================================================')

   print(result)

   print('==================================================')

def show_structure(list, structure):

   structure_name = 'Pilha' if structure == '1' else 'Fila'

   show_result('{}: {}'.format(structure_name, list))

if __name__ == '__main__':

   list = []

   structure = get_structure()

   while(True):

       operation = get_operation()

       if(operation in ('s', 'S')):

           break

       list = controller(list, structure, operation)

       show_structure(list, structure)

Perguntas similares