LinkLinkIt::itPunLinks LinkLinkIt::itPunLinks::BuscarMax(Fecha f){ itPunLinks res = itPunLinks(*this); while(HaySiguiente()) { if(cantAccesosDesde(f) > res.cantAccesosDesde(f)) { res = itPunLinks(*this); } Avanzar(); } return res; }
bool LinkLinkIt::itPunLinks::estaOrdenada(Fecha fecha){ bool res = true; int aux = cantAccesosDesde(fecha); Avanzar(); while (HaySiguiente()) { if (cantAccesosDesde(fecha) > aux) { res = false; } aux = cantAccesosDesde(fecha); Avanzar(); } return res; }
Fecha LinkLinkIt::itPunLinks::ultFecha(){ int res = 0; if (!Siguiente()->dameAccesos().EsVacia()) { res = Siguiente()->dameAccesos().Ultimo().dameDia(); } while(HaySiguiente()) { if(!Siguiente()->dameAccesos().EsVacia() && res < Siguiente()->dameAccesos().Ultimo().dameDia()){ res = Siguiente()->dameAccesos().Ultimo().dameDia(); } Avanzar(); } return res; }
Fecha LinkLinkIt::itPuntLinks::ultFecha(){ int res = 0; if (!SiguienteDL()->_accesosRecientes.EsVacia()) { res = SiguienteDL()->_accesosRecientes.Ultimo()._dia; } while(HaySiguiente()) { if(!SiguienteDL()->_accesosRecientes.EsVacia() && res < SiguienteDL()->_accesosRecientes.Ultimo()._dia){ res = SiguienteDL()->_accesosRecientes.Ultimo()._dia; } Avanzar(); } return res; }
/** * Avanza a la posición siguiente del iterador. * Implementa la función AVANZAR(in/out it: itConj) * PRE: { it = it_0 ^ HaySiguiente?(it) } * POS: { it = Avanzar(it_0) } * Complejidad: O(1) */ void ConjAcotado::const_Iterador::Avanzar() { assert(HaySiguiente()); it.Avanzar(); }
/** * Devuelve el elemento siguiente a la posición del iterador. * Implementa la función SIGUIENTE(in it: itConj) -> res : nat * PRE: { HaySiguiente?(it) } * POS: { res = Siguiente(it) } * Complejidad: O(1) */ Nat ConjAcotado::const_Iterador::Siguiente() const { assert(HaySiguiente()); return it.Siguiente(); }
/** * Elimina de la lista iterada el valor que se encuentra en la posición * siguiente del iterador. * Implmenta la función ELIMINARSIGUIENTE(in/out it: itConj) * PRE: { it = it_0 ^ HaySiguiente?(it) } * POS: { it = EliminarSiguiente(it_0) } * Complejidad: O(1) */ void ConjAcotado::Iterador::EliminarSiguiente() { assert(HaySiguiente()); it.Avanzar(); conj->Eliminar(it.Anterior()); }
const T& Conj<T>::Iterador::Siguiente() const{ assert(HaySiguiente()); return it.SiguienteClave(); }
void Conj<T>::Iterador::EliminarSiguiente() { assert(HaySiguiente()); it.EliminarSiguiente(); }
void Conj<T>::Iterador::Avanzar() { assert(HaySiguiente()); it.Avanzar(); }