Queue, una matriz FIFO o lista enlazada
queue.h
// // creado por GXF el 08/03/2020. // #ifndef UNTITLED_QUEUE_H #define UNTITLED_QUEUE_H initQueue void (); enqueue void (datos int); int dequeue (); int isFull (); int estaVacia (); anulará destroy (); void printQueue (); #endif // UNTITLED_QUEUE_H
queue.c
// // creado por GXF el 08/03/2020. // #include "queue.h" #include <stdio.h> #include <stdlib.h> int frente = 0; int trasera = 0; int * cola = NULL; int longitud = 100; int size = 0; void initQueue () { cola = malloc (sizeof (int) * longitud); } Void enqueue (datos int) { si (isFull ()) { cola [trasero] = datos; = traseras (trasera + 1)% de la longitud; tamaño ++; } Demás printf ( "cola está llena \ n"); } Int dequeue () { si (estaVacia ()!) { Talla --; int res = cola [frente]; = frontales (frontal + 1)% de la longitud; res regresar; } Printf ( "cola está vacía \ n"); } Int isFull () { si (tamaño == longitud) de retorno 1; return 0; } Int estaVacia () { si (tamaño == 0) de regreso 1; return 0; } Void destroy () { si (cola) libre (cola); } Void printQueue () { while (estaVacia ()) { printf ( "% d", quitar de la cola ()); } Printf ( "\ n"); }
main.c
// // creado por GXF el 08/03/2020. // #include "queue.h" int main () { int a [5] = {4, 9, 2, 3, 1}; initQueue (); for (int i = 0; i <sizeof (a) / sizeof (int); i ++) { enqueue (a [i]); } PrintQueue (); destruir(); return 0; }