Página principal | Jerarquía de la clase | Lista alfabética | Lista de componentes | Lista de archivos | Miembros de las clases | Archivos de los miembros | Páginas relacionadas

lista.h

Ir a la documentación de este archivo.
00001 //===========================================================================
00002 //= lista.h                                                   Julio de 1998 =
00003 //=-------------------------------------------------------------------------=
00004 //= CLASE PARAMETRICA LISTA.                                                =
00005 //= Esta es una implementacion de uso generico de un TAD LISTA simplemente  =
00006 //= encadenada, basada en nodos con apuntadores al siguiente nodo.  La      =
00007 //= LISTA puede indexarse como si se tratase de un arreglo, ya que posee    =
00008 //= una sobrecarga del operador []. Posee metodos que permiten que sea      =
00009 //= usada como una pila.                                                    =
00010 //=-------------------------------------------------------------------------=
00011 //= OJO: Notese que en C++ un "template" es una ayuda para el compilador, y =
00012 //= no puede compilarse por separado para generar codigo objeto.  Este      =
00013 //= modulo debe ser incluido (#include) en los modulos que lo utilicen.     =
00014 //=-------------------------------------------------------------------------=
00015 //= IMPORTANTE: Esta clase NO MANEJA estructuras ni clases, esta disennada  =
00016 //= solamente para tipos de datos basicos y apuntadores.  Para usarla con   =
00017 //= estructuras de datos complejas (i.e. clases), utilize siempre           =
00018 //= apuntadores.                                                            =
00019 //=-------------------------------------------------------------------------=
00020 //= Autor original: Oscar J. Chavarro G.  A.K.A. JEDILINK. Copyright (c),   =
00021 //= 1997 - 2003, oscarchavarro@hotmail.com                                  =
00022 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia   =
00023 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la  =
00024 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. =
00025 //===========================================================================
00026 
00027 #include "jed_defs.h"
00028 
00029 #ifndef __LISTA_H__
00030 #define __LISTA_H__
00031 
00032 //============================================================================
00033 //= Definicion de clases                                                     =
00034 //============================================================================
00035 
00036 template <class T> class LISTA;
00037 
00038 template <class T> class NODITO
00039 {
00040   private:
00041     T info;
00042     NODITO<T> *sig;
00043     friend class LISTA<T>;
00044 
00045   public:
00046     NODITO(T &);
00047     ~NODITO();
00048     void data(T &);
00049     void asig(T &);
00050 };
00051 
00052 template <class T> class LISTA
00053 {
00054   private:
00055     long int mi_tam;
00056     NODITO<T> *cab;
00057     NODITO<T> *window;
00058   public:
00059 
00060     // OJO: Por alguna extranna razon estas dos tienen que estar definidas
00061     // aqui para que no salgan como simbolos no definidos!
00062     LISTA(){mi_tam = 0; cab=0; window = 0;};
00063     ~LISTA(){elim();};
00064 
00065     //- Servicios basicos ---------------------------------------------------
00066     T & operator [](int pos);
00067     void elimElem(long int pos);
00068     void elim(void);
00069     void insPosElem(T elm, long int pos);
00070     void anx(T elm);
00071     void push(T &elm);
00072     long int tam(void);
00073     void fin(void);
00074     BOOLEAN vacia(void);
00075 
00076     //- Servicios de control de la ventana ----------------------------------
00077     void principio(void);
00078     void operator ++(void);
00079     T ventana(void) {
00080         if ( !window ) return (T) NULL; else return (T) window->info; 
00081     };
00082 };
00083 
00084 #endif
00085 
00086 //============================================================================
00087 //= EOF                                                                      =
00088 //============================================================================
00089 

Este archivo HTML ha sido generado automáticamente a partir del código fuente AQUYNZA. NO LO EDITE. Para mayor información contacte al autor.