Numa fila, a inserção de elementos é chamada enfileiramento. Sua tarefa nesse exercício é implementar essa operação usando vetores. Para tanto, você deve submeter a função
int enfileira (fila *f, int x);que deve
inserir o elemento x na fila f
e
retornar 1 se a inserção foi bem sucedida, e 0 caso contrário.
Espera-se que fila seja uma struct da
forma
typedef struct fila {
int *dados;
int N, p, u;
} fila;Observações:
Você deve considerar uma fila circular.
Se na inserção, o elemento não couber na fila, o vetor
dados deve ser redimensionado. O redimensionamento deve ser
dobrar o tamanho do vetor dados e a fila deve ser
ajustada da seguinte forma:
Se u == N-1, basta redimensionar o vetor.
Se “a primeira metade” da fila for menor, então esta primeira parte deve ser movido para o final da fila, desta forma:
Se “a segunda metade” da fila for menor, então esta parte deve ser movida para o final do vetor, desta forma:
O arquivo a ser submetido deve incluir apenas
os #include necessários para a execução do seu
código,
a declaração da estrutura necessária e
a função solicitada.