Junio 2006 - Anexo

Transcripción

Junio 2006 - Anexo
Anexo
(A) Definición de la clase NodoB
template <typename T>
class NodoB {
typedef NodoB<T>* PtrNodoB;
public:
NodoB(const T& objeto);
NodoB(const T& objeto, PtrNodoB nizq, PtrNodoB nder);
const T& getObj() const;
PtrNodoB getIzq() const;
PtrNodoB getDer() const;
void setObj(const T& objeto);
void setIzq(PtrNodoB p);
void setDer(PtrNodoB p);
private:
…
};
(B) Definición de la clase Arbin
template <typename T>
class Arbin {
public:
Arbin();
Arbin(const T& objeto, const Arbin& ai, const Arbin& ad);
Arbin(const Arbin& a);
Arbin& operator=(const Arbin& a);
const T& getRaiz() const
throw(ArbolVacioExcepcion);
Arbin subIzq() const throw(ArbolVacioExcepcion);
Arbin subDer() const throw(ArbolVacioExcepcion);
bool esVacio() const;
int altura() const throw(ArbolVacioExcepcion);
private:
…
};
(C) Definición de la clase Par
template <typename C, typename V>
class Par {
public:
Par(const C& c, const V& v);
const C& getClave() const;
const V& getValor() const;
private:
…
};
(D) Especificación algebraica del género lista
espec listas
usa booleanos, naturales
parámetro formal
género elemento
operaciones
_ == _:
elemento elemento à booleano
_ ¹ _:
elemento elemento à booleano
fpf
géneros lista
operaciones
[ ]: à lista
+izq: elemento lista à lista
[ _ ] : elemento à lista
vacía?: lista à booleano
parcial izq: lista à elemento
parcial dch: lista à elemento
eliminar: lista elemento à lista
fsepec
(E) Definición de las clases Selección y Resultado
class Selección{
public:
Selección(string s, Lista<Resultado > lr);
string getPaís();
Lista<Resultado>& getResuls();
private:
string pais;
Lista<Resultado> resultados;
}
class Resultado{
public:
Resultado (string ad, int f, int c);
string getAdversario();
int getGolesFavor();
int getGolesContra();
private:
string adversario;
int gf, gc;
}
(F) Definición de la clase Lista
template <typename T>
class Lista {
public:
class Iterador {
friend class Lista<T>;
public:
void avanzar(const Lista& L)
throw(PosicionErroneaExcepcion);
const T& observar(const Lista& L) const
throw(PosicionErroneaExcepcion);
int posicion(const Lista& L) const;
bool operator!=(const Iterador & der) const;
bool operator==(const Iterador & der) const;
private:
…
};
Lista();
Lista(const Lista& list);
bool esVacia() const;
void anadirIzq(const T& objeto);
void anadirDch(const T& objeto);
void eliminarIzq() throw(ListaVaciaExcepcion);
void eliminarDch() throw(ListaVaciaExcepcion);
const T& observarIzq() const
throw(ListaVaciaExcepcion);
const T& observarDch() const
throw(ListaVaciaExcepcion);
// Métodos propios de la lista con iterador
void insertar(const Iterador& it, const T& objeto);
void eliminar(const Iterador& it)
throw(PosicionErroneaExcepcion);
void modificar(const Iterador& it, const T& objeto)
throw(PosicionErroneaExcepcion);
const T& observar(const Iterador& it) const
throw(PosicionErroneaExcepcion);
Iterador principio() const;
Iterador final() const;
~Lista();
private:
…
};

Documentos relacionados