Professor: Robson Locatelli 19 de dezembro de 2018
1 Estrutura de Dados Fila
Você foi encarregado de implementar um sistema de gerência de fila de aten- dimento de um determinado Banco financeiro. Considere a existência de um Tipo Abstrato de Dado (TAD) para representar uma Fila de números reais, cuja interface está definida pelo arquivo fila.h a seguir: 1 typedef struct fila Fila ; 2
3 Fila * fila_cria ( void ) ;
4 void fila_insere ( Fila * f , float v ) ; 5 float fila_retira ( Fila * f ) ; 6 int fila_vazia ( Fila * f ) ; 7 void fila_imprime ( Fila * f ) ; 8 void fila_libera ( Fila * f ) ;
Sem conhecer a representação interna desse tipo abstrato e usando apenas as
funções declaradas no arquivo de interface, implemente uma função que receba três filas, fRes, f1 e f2, e transfira alternadamente os valores de f1 e f2 para fRes, conforme ilustrado no quadro em sala de aula. Note que, ao final da execução as filas f1 e f2 deverão estar vazias e a fila fRes vai conter todos os valores que estavam originalmente em f1 e f2 (inicialmente fRes pode ou não estar vazia). A função deve considerar filas de diferentes tamanhos. Caso uma fila seja maior que a outra, os valores excedentes devem ser transferidos para a nova fila no final. Ao final, o programa deve exibir as 3 filas atualizadas, antes de liberá-las. A função para combinar as filas deve obedecer ao protótipo: