int main() { const int TOTAL_A_ENCOLAR=10; const int PRIMERO_EN_ENCOLAR=5; Cola cola; Persona x,y,z,v; Persona* u; char nombre[TAMANO_NOMBRE]; int i,j; x.clave=1; strcpy(x.nombre,"primero"); y.clave=2; strcpy(y.nombre,"segundo"); z.clave=3; strcpy(z.nombre,"tercero"); v.clave=4; strcpy(v.nombre,"cuarto"); printf("Inicializando cola...\n"); inicializa(&cola); printf("Poniendo 4 elementos en cola...\n"); encola(&x,&cola); encola(&y,&cola); encola(&z,&cola); encola(&v,&cola); for(i=PRIMERO_EN_ENCOLAR,j=TOTAL_A_ENCOLAR;i<=j;i++){ if (estaLlena(&cola)){ pausar(); printf("\nQuitando uno de cola..."); v=desencola(&cola); imprimeElemento(&v); printf("\n"); } pausar(); x.clave=i; strcpy(x.nombre,"El "); strcat(x.nombre,itoa(i, nombre, 10)); strcat(x.nombre,"o."); printf("Poniendo <<"); imprimeElemento(&x); printf(">> en cola...\n"); encola(&x,&cola); } pausar(); printf("Muestreando el frente..."); u=frente(&cola); imprimeElemento(u); printf("\nQuitando todos de cola...\n"); while(!estaVacia(&cola)){ v=desencola(&cola); imprimeElemento(&v); printf("\n"); } v=desencola(&cola); return 0; }
void apila(TipoElemento *x, Pila *p){ if(!estaLlena(p)){ p->elementos[++p->tope] = *x; } else{ imprimeError("\n\n\t\tLA PILA ESTA LLENA"); } }
unsigned Calesita::encontrarLugarLibre() const { if (!estaLlena()) { unsigned indice = 0; while (indice < capacidad) { if (ubicaciones[indice] == NULL) { return indice; } ++indice; } } throw std::string("Calesita Llena"); }
void Calesita::agregarNinio(const Ninio& ninio) { if (!estaLlena()) { unsigned ubicacion = ninio.getUbicacionPreferida(capacidad); char buffer[50]; sprintf(buffer, "%d", ubicacion); if (estaOcupado(ubicacion)) { Logger::getLogger()->Log("CALESITA: El ninio " + ninio.getNombre() + " intento" " subirse a la ubicacion " + buffer + " " "y estaba ocupada"); ubicacion = encontrarLugarLibre(); sprintf(buffer, "%d", ubicacion); } ubicaciones[ubicacion] = new Ninio(ninio); Logger::getLogger()->Log("CALESITA: El ninio " + ninio.getNombre() + " se subio a" " la ubicacion " + buffer); ++cantidadOcupada; } else { Logger::getLogger()->Log("CALESITA: El ninio " + ninio.getNombre() + " no se pudo" " ubicar en la calesita. Calesita Llena"); throw std::string("Calesita Llena"); } }