Página principal   Lista alfabética   Lista de componentes   Lista de archivos   Miembros de las clases   Páginas relacionadas  

diccionario.h

Ir a la documentación de este archivo.
00001 
00010 #ifndef _Diccionario_h
00011 #define _Diccionario_h
00012 
00013 #include <cassert>
00014 #include <utilidades.h>
00044 template <class Tk,class Ti>
00045 class Diccionario {
00046   private:
00069     Par<Tk,Ti> * parejas; 
00070     int nelementos; 
00071     int reservados; 
00081     bool posicion_indice(int& pos, const Tk& llave) const;
00088     void expandir();
00096     void contraer();
00097   public:
00098    /*--------------------------- Iteradores--------------------------- */
00112    class const_iterador {
00113       private:
00114         Par<Tk,Ti>* puntero;
00115         const_iterador(Par<Tk,Ti>* p): puntero(p) {}
00116       public:
00117         const_iterador(): puntero(0) {}
00118         const_iterador(const const_iterador& it): puntero(it.puntero){}
00119         //const_iterador(iterador v): puntero(v.puntero){} // no necesaria
00120         const Par<Tk,Ti>& operator*() const
00121           { assert(puntero!=0);return *puntero; }
00122         const_iterador& operator++() {
00123             assert(puntero!=0);puntero++;return *this;}
00124         const_iterador& operator--() {
00125             assert(puntero!=0);puntero--;return *this;}
00126         bool operator!=(const const_iterador& v) const{
00127           return puntero!=v.puntero; }
00128         bool operator==(const const_iterador& v) const{
00129           return puntero==v.puntero; }
00130         friend class Diccionario<Tk,Ti>;
00131     };
00132     const_iterador begin() const {return const_iterador(parejas);}
00133     const_iterador end() const {return const_iterador(parejas+nelementos);}
00142     typedef const_iterador iterador;
00143     /*------------------------ fin iteradores-------------------------- */
00144 
00145     Diccionario<Tk,Ti>();
00146     Diccionario<Tk,Ti>(const Diccionario<Tk,Ti>& orig);
00147     ~Diccionario<Tk,Ti>();
00148     Diccionario<Tk,Ti>& operator= (const Diccionario<Tk,Ti>& original);
00156     void insertar(const Tk& llave, const Ti& valor);
00164    iterador borrar(iterador it);
00171    iterador buscar(const Tk& llave);
00176    int num_elementos() const { return nelementos; }
00177 
00178 };
00179 
00180 #include <diccionario.cpp>
00181 
00182 #endif /* _Diccionario_h */

Programación en C++. Desarrollado por Antonio Garrido, © 2001