sábado, 5 de setembro de 2015

Fila Circular Com Mumeros Inteiros , Prof. Nava




#include <stdio.h>
#include <stdlib.h>

#define TAMANHO 5

int fila[TAMANHO];
int opcao;
int numero;
int fim;
int inicio;
int vazia = 1;

void menu();
void adicionar(int numero);
int retirar();
void imprimir();

int main()
{
    opcao = 0;
    inicio = 0;
    fim = 0;
    while(opcao != 4)
    {
        menu();
        switch(opcao)
        {
        case 1:
            printf("Digite o numero: ");
            scanf("%d",&numero);
            adicionar(numero);
            break;
        case 2:
            numero = retirar();
            printf("Retirado o numero %d da fila\n", numero);
            break;
        case 3:
            imprimir();
        case 4:
            break;
        default:
            printf("Opcao invalida!\n");
        }
    }
}

void menu()
{
    printf("1 - adicionar\n");
    printf("2 - retirar\n");
    printf("3 - imprimir\n");
    printf("4 - sair\n");
    printf("Digite a opcao: ");
    scanf("%d", &opcao);
}

void adicionar(int numero)
{
    if(vazia==1)
    {
        fila[fim] = numero;
        fim++;
        if(fim == TAMANHO)
            fim = 0;
        vazia = 0;
    }
    else
    {
        if(inicio == fim)
        {
            printf("Fila cheia!\n");
        }
        else
        {
            fila[fim] = numero;
            fim++;
            if(fim == TAMANHO)
                fim = 0;
        }
    }
}

int retirar()
{
    int valorParaRetornar = -1;

    if(vazia == 1)
    {
        printf("Fila vazia!\n");
    }
    else
    {
        valorParaRetornar = fila[inicio];
        inicio++;
        if(inicio == TAMANHO)
            inicio = 0;
        if(inicio == fim)
            vazia = 1;
    }

    return valorParaRetornar;
}

void imprimir()
{
    int i;
    int a = 0;
    i = inicio;
    if(vazia == 0)
    {
        while(a==0)
        {
            printf("%d - ",fila[i]);
            i++;
            if(i==TAMANHO)
                i=0;
            if(i==fim)
                a=1;
        }
        printf("\n");
    }
}

Nenhum comentário:

Postar um comentário