Página principal | Lista de namespace | Jerarquía de la clase | Lista de componentes | Lista de archivos | Miembros de las clases | Archivos de los miembros

LDoble.h

Ir a la documentación de este archivo.
00001 // LDoble.h: interface for the LDoble class.
00002 
00003 #ifndef  LDoble_h
00004 #define  LDoble_h
00005 
00006 typedef unsigned short int TDato;
00007 typedef unsigned long int TMayor;
00008 
00009 /// Nodo de la lista.
00010 class NDoble {
00011 public:
00012     TDato Dato; ///< Valor almacenado.
00013     NDoble *Sig,*Ant; ///< Punteros de la lista doblemente enlazada.
00014 
00015 public:
00016     NDoble(TDato dato=0) : Dato(Dato), Sig(0), Ant(0) { }
00017     virtual ~NDoble() { }
00018 };
00019 
00020 #define TRUE 1
00021 #define FALSE 0
00022 
00023 typedef int Boolean;
00024 typedef NDoble* PNDoble;
00025 
00026 /// Lista doblemente enlazada.
00027 class LDoble {
00028         PNDoble Prim,Ult;  /*,*Cte*/
00029         int CantNodos;
00030 public:
00031         int CantRefs;
00032         LDoble();
00033         //Post: devuelve TRUE si no tiene elementos, sino FALSE.
00034         virtual Boolean Vacia();
00035         //Post: Elimina todos los elementos de la lista y libera la memoria.
00036         virtual void Vaciar();
00037         /*Post: inserta el elemento dat en la posición anterior al corriente.
00038                 si la lista estaba vacía lo inserta en el primer lugar. dat 
00039                 es el nuevo corriente.                                    */
00040         virtual int InsAntes(PNDoble& Cte, TDato dat);
00041         /*Post: inserta el elemento dat en la posición posterior al corriente.
00042                 si la lista estaba vacía lo inserta en el primer lugar. dat 
00043                 es el nuevo corriente.                                    */
00044         virtual int InsDespues(PNDoble& Cte, TDato dat);
00045         /* direccion indica adonde se mueve el corriente. Valores posibles:
00046            'p' (primer elemento), 's' (elemento siguiente), 'a' (elem. anterior),
00047            'u' (último elemento).                                                                             */
00048         virtual int MoverCte(PNDoble& Cte, char direccion);
00049         /*Pre : La lista no está vacía.
00050           Post: Devuelve el valor del Corriente.                          */
00051         virtual TDato ObtCte(PNDoble Cte);
00052         /*Pre : La lista no está vacía.
00053           Post: Modifica el valor del elemento Corriente, asignandole dat.
00054                         Si existe el corriente devuelve 0.                        */
00055         virtual int ModifCte(PNDoble& Cte, TDato dat);
00056         /*Pre : La lista no está vacía.
00057           Post: Elimina el elemento actual (Corriente). El corriente es el
00058             siguiente. Si era el último es el anterior.                */
00059         virtual int ElimCte(PNDoble& Cte);
00060         /*Post: Devuelve la cantidad de elementos guardados en la lista.  */
00061         virtual int CantElem();
00062         /* Destructor: libera todo el espacio ocupado por la lista        */
00063         virtual ~LDoble();
00064 };
00065 
00066 #endif
00067 
00068 // EOF: LDoble.h

Generado el Thu Sep 20 12:33:06 2007 para Clase decimal: por  doxygen 1.4.1
Hosted by www.Geocities.ws

1