Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct no
- {
- float info;
- struct no* prox;
- } NoLista;
- typedef struct fila
- {
- NoLista *ini;
- NoLista *fim;
- } Fila;
- Fila *criarFila()
- {
- Fila *f = malloc(sizeof(Fila));
- f->ini = f->fim = NULL;
- return f;
- }
- int estaVazia(Fila *f)
- {
- return (f->ini == NULL);
- }
- void inserir(Fila *f, float v)
- {
- NoLista *novo = malloc(sizeof(NoLista));
- if (novo != NULL)
- {
- novo->info = v;
- novo->prox = NULL;
- if (f->fim != NULL)
- f->fim->prox = novo;
- else
- f->ini = novo;
- f->fim = novo;
- }
- else
- printf("ERROR!\n");
- }
- float remover(Fila *f)
- {
- if(!estaVazia(f))
- {
- NoLista *p = f->ini;
- float n = p->info;
- f->ini = p->prox;
- if (f->ini == NULL)
- f->fim = NULL;
- free(p);
- return n;
- }
- else
- {
- printf("Esta vazio!\n");
- f->ini = NULL;
- }
- return -99.99;
- }
- void furaFila(Fila *f, float v)
- {
- NoLista *p, *ant = NULL;
- for (p = f->ini; p->prox != NULL && p->info != v; p = p->prox)
- ant = p;
- if(p->info == v)
- {
- if (ant != NULL)
- {
- ant->prox = p->prox;
- p->prox = f->ini;
- f->ini = p;
- }
- }
- else
- printf("Elemento nao encontrado!\n");
- }
- void imprimir(Fila *f)
- {
- if (f->ini != NULL)
- {
- NoLista *l;
- for(l = f->ini; l != NULL; l = l->prox)
- printf("%.2f\n", l->info);
- }
- else
- printf("Esta vazia!\n");
- }
- void liberarLista(Fila *f)
- {
- NoLista *no = f->ini;
- while(no != NULL)
- {
- //NoLista *temp = no->prox;
- f->ini = no->prox;
- free(no);
- no = f->ini;
- }
- free(no);
- }
- int main()
- {
- Fila *f = criarFila();
- printf("Esta vazio? %s\n", (estaVazia(f) ? "Sim" : "Nao"));
- inserir(f, 1);
- inserir(f, 2);
- inserir(f, 3);
- inserir(f, 4);
- imprimir(f);
- printf("Elemento removido: %.2f\n", remover(f));
- imprimir(f);
- printf("Furar fila: \n");
- printf("Digite um valor para furar fila: ");
- float num;
- scanf("%f", &num);
- furaFila(f, num);
- imprimir(f);
- liberarLista(f);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement