#include <stdio.h>
#include <stdlib.h>
void entrar(int *fila,int v,int tam,int *ini,int *fim)
{
int prov = (*fim+1) % (tam);
if(prov != *ini)
{
*fim=prov;
fila[*fim]=v;
if(*ini==-1) *ini=0;
}
else printf("\nFila cheia!\n");
}
int sair(int *fila,int tam, int *ini,int *fim) {
int v;
if( *ini != -1 )
{
v=fila[*ini];
if(*ini==*fim)
{
fila[*ini]=NULL;
*ini=*fim=-1;
}
else
{
fila[*ini]=NULL;
*ini = (*ini+1) % tam;
}
return v;
}
else {
printf("\nFila vazia!\n");
return -1;
}
}
int main() {
char op;
int ok, tam, *fila, elemento,ini=-1,fim=-1,i;
printf("Informe o tamanho desejado para a fila: ");
scanf("%d",&tam);
if((fila=(int*)malloc(tam*sizeof(int)))==NULL) exit(1);
do{
printf("\n(e)ntrar (s)air (f)echar: ");
getchar();
scanf("%c",&op);
switch (op){
case 'e':
printf("\nInforme o elemento a ser inserido: ");
scanf("%d",&elemento);
entrar(fila,elemento,tam,&ini,&fim);
break;
case 's':
ok=sair(fila,tam,&ini,&fim);
printf("\nO elemento retirado foi: %d.\n",ok);
break;
}
for(i=0;i<tam;i++) printf("%d\t",fila[i]);
printf("\n");
}while(op!='f');
return 0;
}
Nenhum comentário:
Postar um comentário