Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct elem
- {
- int dado;
- struct elem *prox;
- }Tfila;
- typedef struct
- {
- Tfila *inicio;
- Tfila *fim;
- }fila;
- void criarfila(fila *f)
- {
- f->inicio = NULL;
- f->fim = NULL;
- }
- int fila_vazia(fila *f)
- {
- if(f->inicio == NULL && f->fim == NULL)
- return 1;
- else
- return 0;
- }
- void enfila(fila *f)
- {
- int valor;
- printf("Digite o valor a ser enfilado:");
- scanf("%d", &valor);
- Tfila *novo = (Tfila*)malloc(sizeof(Tfila));
- novo->dado = valor; //a nova fila recebe os dados de valor
- f->inicio = *novo; //o endereço do inicio da fila principal recebe o endereço da nova
- novo->prox = NULL; //o endereço do próximo da nova fila recebe vazio
- f->fim = *novo; //o fim da fila prncipal recebe o endereço da nova pilha
- }
- int desenfila(fila *f)
- {
- int x; //criar uma auxiliar1 para o valor
- Tfila *aux; //criar a fila auxiliar2
- aux = f->fim; //endereço da auxiliar2 é igual ao endereço do fim da fila
- x = aux->dado; //a auxiliar1 recebe o valor do dado da auxiliar2
- f->inicio = aux->prox; //o endereço do inicio da fila é o endereço do próximo da auxiliar2
- aux->prox = NULL; //o endereço do próximo da auxiliar é vazio
- free(aux); //liberar a memória da auxiliar2
- return 0;
- }
- void mostrar_fila(fila *f)
- {
- Tfila *aux;
- int valor;
- aux = f->inicio;
- printf("\nFILA: ");
- while(aux!= NULL)
- {
- valor = aux->dado;
- printf("%4d", valor);
- aux = aux->prox;
- }
- }
- void menu()
- {
- int opc;
- fila *f;
- criarfila(&f);
- do
- {
- printf("1- Enfila\n");
- printf("2- Desenfila\n");
- printf("3- Mostra\n");
- printf("4- Fim\n\n");
- scanf("%d", &opc);
- switch (opc)
- {
- case 1:
- {
- if(fila_vazia(&f))
- enfila(&f);
- else
- printf("A fila está vaiza!!!");
- }
- break;
- case 2:
- {
- desenfila(&f);
- }
- break;
- case 3:
- {
- mostra(&f);
- }
- break;
- }
- }while(opc !=4);
- }
- int main()
- {
- menu();
- printf("\n");
- return 0;
- }
Add Comment
Please, Sign In to add comment