Você está na página 1de 2

/*Deixa o codigo mais facil para ler e compreender

*/
#include <stdio.h>
#include <stdlib.h>
typedef struct no{
int dados;
struct no *proximo;
}No;
void inserirfila (No **fila, int num){
No *aux, *novo = malloc (sizeof(No));
if (novo){
novo -> dados = num;
novo -> proximo = NULL;
if (*fila == NULL)
*fila = novo;
else {
aux = *fila;
while (aux -> proximo)
aux = aux -> proximo;
aux -> proximo = novo;
}
}
else{
printf ("\n Erro ao alocar a memória \n");
}
}
No* removerfila (No **fila){
No *remover = NULL;
if (*fila){
remover = *fila;
*fila = remover -> proximo;
}
else
printf ("\nVazia");
return remover;
}
void imprimir (No *fila){
printf ("\t<<< Fila >>>\n");
while (fila){
printf (" <- %d", fila -> dados);
fila = fila -> proximo;
}
printf ("\n\t<<< Fim >>>");
}
int main (){
No *remove, *fila = NULL;
int o, v;
do{
printf ("\t\n0 - sair\n1 - inserir\n2 - remover\n3 - imprimir\
n");
getchar();
switch(o){
case 1:
printf ("Coloque um valor para a fila: ");
scanf ("%d", &v);
inserirfila (&fila, v);
break;
case 2:
remove = removerfila (&fila);
if (remove){
printf ("Elemento %d foi excluído", remove ->
dados);
free (remove);
}
break;
case 3:
imprimir (fila);
break;
default:
if (o != 0)
printf ("\n Inválida\n");
break;
}
}while (o != 0);
return 0;
}

Você também pode gostar