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: … };