Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define TAMANHO_FILA (100)
- // Estrutura para representar a fila
- struct Fila {
- int items[TAMANHO_FILA];
- int frente;
- int atras;
- };
- /* Verificar se a fila está vazia
- @return int
- 0: fila nao vazia
- 1: fila vazia
- */
- int verificaFilaVazia(struct Fila *pFila) {
- if (pFila->frente != pFila->atras) {
- return 0;
- }
- return 1;
- }
- // Inserção de items na fila
- void inserirItem(struct Fila* pFila, int valor) {
- if (pFila->atras+1 >= TAMANHO_FILA) {
- printf("\nA fila está cheia! aconteceu um estouro de fila.");
- exit(1);
- }
- pFila->items[pFila->atras++] = valor;
- }
- // Retorna o tamanho da fila
- int tamanho(struct Fila* pFila) {
- return pFila->atras;
- }
- // Consulta o proximo item a ser acessado
- int frente(struct Fila* pFila) {
- return pFila->items[0];
- }
- // Remoção de elementos da fila
- int remover(struct Fila* pFila) {
- int x, y;
- if (verificaFilaVazia(pFila)) {
- printf("\nA fila esta vazia. Nao eh possivel remover itens!");
- exit(1);
- }
- x = frente(pFila);
- // Fazer a fila andar
- for (int i = 0; i < tamanho(pFila); i++) {
- pFila->items[i] = pFila->items[i + 1];
- }
- pFila->atras--;
- return x;
- }
- // Esvaziamento da fila
- void esvaziarFila(struct Fila* pFila) {
- int tam = tamanho(pFila);
- int i;
- printf("\nProcesso de esvaziamento da fila");
- for (int i = 0; i < tam; i++) {
- printf("\n Item %d retirado da fila", remover(pFila));
- }
- }
- void mostrarFila(struct Fila* pFila) {
- printf("\n\nTem atualmente %d itens na fila\n----------------------", tamanho(pFila));
- for (int i = 0; i < tamanho(pFila); i++) {
- printf("\nItem %d da fila: %d", i, pFila->items[i]);
- }
- printf("\n----------------------\n");
- }
- int main() {
- // Criando fila vazia
- struct Fila minhaFila;
- minhaFila.frente = 0;
- minhaFila.atras = 0;
- // Testando inserir item
- inserirItem(&minhaFila, 30);
- inserirItem(&minhaFila, -12);
- inserirItem(&minhaFila, 5);
- inserirItem(&minhaFila, 10);
- // Visualizar a fila inteira
- mostrarFila(&minhaFila);
- // Testando verificar fila vazia
- printf("\n%s", verificaFilaVazia(&minhaFila) ? "A fila esta vazia" : "A fila nao esta vazia");
- // O proximo da fila
- printf("\nO proximo a ser atendido eh o: %d", frente(&minhaFila));
- printf("\nO elemento que foi removido foi: %d", remover(&minhaFila));
- mostrarFila(&minhaFila);
- esvaziarFila(&minhaFila);
- mostrarFila(&minhaFila);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement