Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX 5
- typedef struct fila{
- int * valor;
- int topo;
- int qtd;
- } Fila;
- Fila * criaFila(){
- Fila * f= (Fila*)malloc(sizeof(Fila));
- f->valor = (int*)(malloc(MAX*sizeof(int)));
- f->topo = 0;
- f->qtd = 0;
- return f;
- }
- void push(int n, Fila *f){
- f->valor[(f->topo)%MAX] = n;
- f->topo++;
- f->topo = (f->topo)%MAX;
- f->qtd++;
- }
- int pop(Fila *f){
- int aux = -1;
- if(!filaVazia(f)){
- aux = f->valor[f->topo-f->qtd];
- f->qtd--;
- return aux;
- }
- return aux;
- }
- int filaVazia(Fila * f){
- return f->qtd == 0;
- }
- int filaCheia(Fila * f){
- return f->qtd == MAX;
- }
- void printaFila(Fila *f){
- printf("Fila: ");
- for(int i = f->topo + MAX - f->qtd; i<MAX; i++){
- printf("%d ", f->valor[i]);
- }
- for(int i = 0; i<f->topo; i++){
- printf("%d ", f->valor[i]);
- }
- printf("\n");
- }
- int main(){
- Fila * f = criaFila();
- push(1, f);
- push(2, f);
- push(3, f);
- push(4, f);
- push(5, f);
- pop(f);
- pop(f);
- push(1, f);
- push(1, f);
- pop(f);
- push(1, f);
- printaFila(f);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement