#include <cstdlib>
#include <iostream>
#include <fstream>
#include <math.h>
#include <conio2.h>
#include "cola.hpp"
using namespace std;
CCola::CCola(){
frente = 1;
final = 0;
numelems = 0;
}
CCola::CCola(CCola &otracola){
int i;
frente = otracola.frente;
final = otracola.final;
numelems = otracola.numelems;
for(i=0;i<=MAXCOLA;i++){
datos[i] = otracola.datos[i];
}
}
CCola::~CCola(){}
bool CCola::EstaVacia(){
return numelems == 0;
}
bool CCola::EstaLLena(){
return numelems == MAXCOLA;
}
void CCola::Desencolar(){
if(!EstaVacia()){
frente = (frente % MAXCOLA) + 1;
numelems = numelems - 1;
}
}
void CCola::Encolar(const TpElemento elem){
if(!EstaLLena()){
final = (final % MAXCOLA) + 1;
numelems = numelems + 1;
datos[final] = elem;
}
}
CCola::TpElemento CCola::Final(){ //precondicion la cola no debe estar vacia
return datos[final];
}
CCola::TpElemento CCola::Frente(){ //precondicion la cola no debe estar vacia
return datos[frente];
}