#include #include #include "colas.h" void crearCola(Cola *C) { C->principio = NULL; C->final = NULL; } int esVacia(Cola C) { return(C.principio == NULL); } int encolar(int X, Cola *C) { PNodo NodoTemp; NodoTemp = (PNodo) malloc(sizeof(Nodo)); if (NodoTemp == NULL){ printf("Error de asignación: No hay espacio"); return 1; } NodoTemp->dato = X; NodoTemp->siguiente = NULL; if (esVacia(*C)) C->principio = NodoTemp; else C->final->siguiente = NodoTemp; C->final = NodoTemp; return 0; } void imprimirCola(Cola *C) { PNodo N; N = C->principio; while (N != NULL) { printf("%d ",N->dato); N = N -> siguiente; } printf("\n"); } void desencolar(Cola *C) { PNodo Primero; if (esVacia(*C)) printf("Cola Vacía\n"); else { Primero = C->principio; C->principio = C->principio->siguiente; if (C->principio == NULL) C->final = NULL; free(Primero); } } int primero(Cola C) { if(!esVacia(C)) return C.principio->dato; printf("Cola vacia\n"); return 0; } void borrarCola(Cola *C) { if (C->principio == NULL) printf("Error: primero hay que crear la cola\n"); else while(!esVacia(*C)) desencolar(C); }