Aleph-w  1.5a.2
Biblioteca general de algoritmos y estructuras de datos
 Todo Clases Archivos Funciones Variables 'typedefs' Enumeraciones Amigas Grupos Páginas
Referencia de la plantilla de la Clase Aleph::DynDlist< T >

#include <tpl_dynDlist.H>

+ Diagrama de herencias de Aleph::DynDlist< T >
+ Diagrama de colaboración para Aleph::DynDlist< T >:

Clases

class  Iterator
 

Tipos públicos

typedef DynDlist Set_Type
 El tipo de conjunto sobre el cual se itera.
 
typedef T Item_Type
 El tipo de elemento que alberga el conjunto.
 
typedef T Key_Type
 
- Tipos públicos heredados desde Aleph::Dnode< T >
typedef T key_type
 tipo de dato
 
typedef T dnode_type
 Exporta tipo del dato que contiene el nodo.
 

Métodos públicos

const size_t & size () const
 Retorna la cantidad de elemento que tiene la lista.
 
void empty ()
 Vacía todos los elementos de la lista.
 
 ~DynDlist ()
 Destructor.
 
T & insert (const T &item) throw (std::exception, std::bad_alloc)
 
T & insert (T &&item)
 
T & append (const T &item) throw (std::exception, std::bad_alloc)
 
T & append (T &&item) throw (std::exception, std::bad_alloc)
 
size_t insert_list (const DynDlist &list)
 
size_t insert_list (DynDlist &&list)
 
size_t append_list (DynDlist &list)
 
size_t append_list (DynDlist &&list)
 
T & get_first () throw (std::exception, std::underflow_error)
 Retorna una referencia al primer elemento de la lista.
 
const T & get_first () const throw (std::exception, std::underflow_error)
 
T & get_last () throw (std::exception, std::underflow_error)
 Retorna una referencia al último elemento de la lista.
 
const T & get_last () const throw (std::exception, std::underflow_error)
 
remove_first () throw (std::exception, std::underflow_error)
 
remove_last () throw (std::exception, std::underflow_error)
 
T & put (const T &item)
 Si this es una cola, entonces mete el elemento item.
 
T & put (T &&item)
 
get ()
 Si this es una cola, entonces extrae el elemento más antiguo.
 
T & rear ()
 Si this e suna cola, entonces retorna el elemento más joven.
 
T & front ()
 Si this e suna cola, entonces retorna el elemento más antiguo.
 
T & push (const T &item)
 Si this es una pila, entonces inserta item.
 
T & push (T &&item)
 Si this es una pila, entonces inserta item.
 
pop ()
 Si this es una pila, entonces elimina el tope.
 
T & top () const
 Si this es una pila, entonces retorna el tope.
 
void remove (T &data)
 
void erase (T &data)
 
void swap (DynDlist &l)
 
void split_list (DynDlist &l, DynDlist &r) throw (std::exception, std::domain_error)
 
DynDlist< T > & operator= (const DynDlist &list)
 
 DynDlist (const DynDlist &list)
 Constructor copia; todos los elementos de this son copiados.
 
 DynDlist (DynDlist< T > &&list)
 
 DynDlist (std::initializer_list< T > l)
 
DynDlist< T > & operator= (DynDlist &&list)
 
T & operator[] (const size_t &n)
 
 Generic_Traverse (T)
 
 Functional_Methods (T)
 
- Métodos públicos heredados desde Aleph::Dnode< T >
Dnode< T > *& get_next ()
 Retorna referencia a puntero de nodo siguiente a this.
 
Dnode< T > *& get_prev ()
 Retorna referencia a puntero de nodo previo a this.
 
Dnode< T > * remove_prev ()
 Elimina anterior a this y retorna su dirección.
 
Dnode< T > * remove_next ()
 Elimina sucesor a this y retorna su dirección.
 
Dnode< T > *& get_first ()
 Retorna referencia a puntero del primer nodo de this.
 
Dnode< T > *& get_last ()
 Retorna referencia a puntero del último nodo de this.
 
Dnode< T > * remove_last ()
 Elimina el último elemento de la lista this y retorna su dirección.
 
Dnode< T > * remove_first ()
 Elimina el primer elemento de la lista this y retorna su dirección.
 
 Dnode (const T &item)
 Construye nodo con dato _data.
 
 Dnode (T &&item)
 
Dnodeswap (Dnode &p)
 
Dnodeswap (Dnode *p)
 
 Dnode (const Dnode &node)
 Constructor copia de nodo. Sólo se copia el dato.
 
 Dnode (Dnode &&node)
 Constructor copia rvalue de nodo. Sólo se copia el dato.
 
Dnodeoperator= (const Dnode &p)
 
Dnodeoperator= (Dnode &&p)
 
Dnodeoperator= (const T &_data)
 Asigna al dato del nodo el valor de _data.
 
Dnodeoperator= (T &&_data)
 Asigna al dato del nodo el valor de _data.
 
T & get_data ()
 Retorna referencia a dato contenido en el nodo.
 
T & get_key ()
 

Otros miembros heredados

- Métodos públicos estáticos heredados desde Aleph::Dnode< T >
static Dnodedata_to_node (T &data)
 

Descripción detallada

template<typename T = int>
class Aleph::DynDlist< T >

Lista dinámica de elemento de tipo T.

DynDlist<T> define una lista dinámica es una secuencia de elementos de algún tipo T.

Este tipo puede emplearse como pila o cola.

Parámetros
Tel tipo de elementos de la lista.
Ver también
DynDlist::Iterator

Documentación del constructor y destructor

template<typename T = int>
Aleph::DynDlist< T >::DynDlist ( DynDlist< T > &&  list)
inline

Constructor copia con semántica rvalue; todos los elementos de this son copiados.

Documentación de las funciones miembro

template<typename T = int>
T& Aleph::DynDlist< T >::append ( const T &  item)
throw (std::exception,
std::bad_alloc
)
inline
template<typename T = int>
size_t Aleph::DynDlist< T >::append_list ( DynDlist< T > &  list)
inline

Inserta list depués de this; el resultado es this-list.

El método toma todos los elementos de la lista list y los inserta secuencialmente después de la lista this. La lista list deviene vacía.

El método toma tiempo constante.

Si se requiere que list no sea vaciada, entonces el proceso debe ser copiar list y luego efectuar esta operación sobre la copia.

Parámetros
[in,out]listlista a ser copiada al final de this. Este parámetro deviene vacío luego de la inserción.
Devuelve
la nueva cantidad de elementos de this
template<typename T = int>
void Aleph::DynDlist< T >::erase ( T &  data)
inline

Elimina el elemento data. Atención: data debe ser una referencia a un elemento dentro de la secuencia.

template<typename T = int>
T& Aleph::DynDlist< T >::insert ( const T &  item)
throw (std::exception,
std::bad_alloc
)
inline

Inserta un elemento al principio de la lista.

Inserta en la lista this como primer elemento una copia de _data.

Después de la operación el primer elemento de la lista es _data.

Parámetros
[in]itemel dato a insertarse.
Devuelve
referencia al dato recién insertado.
Excepciones
bad_allocsi no hay memoria para el nuevo elemento.

Referenciado por Aleph::min_cut() y Aleph::DynDlist< typename GT::Node * >::push().

+ Gráfico de llamadas a esta función:

template<typename T = int>
size_t Aleph::DynDlist< T >::insert_list ( const DynDlist< T > &  list)
inline

Inserta list antes de this; el resultado es list-this.

El método toma todos los elementos de la lista list y los inserta secuencialmente antes de la lista this. La lista list deviene vacía.

El método toma tiempo constante.

Si se requiere que list no sea vaciada, entonces el proceso debe ser copiar list y luego efectuar esta operación sobre la copia.

Parámetros
[in,out]listlista a ser copiada al principio de this. Este parámetro deviene vacío luego de la inserción.
Devuelve
la nueva cantidad de elementos de this
template<typename T = int>
DynDlist<T>& Aleph::DynDlist< T >::operator= ( const DynDlist< T > &  list)
inline

Asignación de lista dinámica con semántica lvalue.

La asignación elimina todos los elementos de this y luego copia en this los elementos contenidos en la lista list.

Parámetros
[in]listlista a ser asignada
Excepciones
bad_allocsi no hay memoria.
template<typename T = int>
DynDlist<T>& Aleph::DynDlist< T >::operator= ( DynDlist< T > &&  list)
inline

Asignación de lista dinámica con semántica rvalue.

La asignación elimina todos los elementos de this y luego copia en this los elementos contenidos en la lista list.

Parámetros
[in]listlista a ser asignada
Excepciones
bad_allocsi no hay memoria.
template<typename T = int>
void Aleph::DynDlist< T >::remove ( T &  data)
inline

Elimina el elemento data. Atención: data debe ser una referencia a un elemento dentro de la secuencia.

template<typename T = int>
T Aleph::DynDlist< T >::remove_first ( )
throw (std::exception,
std::underflow_error
)
inline

Elimina el primer elemento de la lista: retorna una copia del elemento eliminado.

Devuelve
una copia del elemento eliminado.
Excepciones
underflow_errorsi la lista está vacía.

Referenciado por Aleph::DynDlist< typename GT::Node * >::get(), Aleph::Net_Graph< NodeT, ArcT >::make_super_sink(), Aleph::Net_Graph< NodeT, ArcT >::make_super_source() y Aleph::DynDlist< typename GT::Node * >::pop().

+ Gráfico de llamadas a esta función:

template<typename T = int>
T Aleph::DynDlist< T >::remove_last ( )
throw (std::exception,
std::underflow_error
)
inline

Elimina el último elemento de la lista: retorna una copia del elemento eliminado.

Devuelve
una copia del elemento eliminado.
Excepciones
underflow_errorsi la lista está vacía.
template<typename T = int>
void Aleph::DynDlist< T >::split_list ( DynDlist< T > &  l,
DynDlist< T > &  r 
)
throw (std::exception,
std::domain_error
)
inline

Particiona this por el centro la lista dinámica this.

El método particiona la lista this por el centro en tiempo lineal. Los primeros n/2 elementos son copiados a l los siguientes n/2 a r.

Si n es impar, entonces l contendrá n/2 + 1 elementos.

Parámetros
[out]lprimera partición.
[out]rsegunda partición.
Excepciones
domain_errorsi alguna de las listas l o r no están vacías.
template<typename T = int>
void Aleph::DynDlist< T >::swap ( DynDlist< T > &  l)
inline

Intercambia en tiempo constante todos los elementos de this con los de la lista l.

La operación toma tiempo contante (muy rápido) independientemente de la cantidad de elementos que contengas las dos listas.

Parámetros
llista a intercambiar con this

Referenciado por Aleph::compute_min_cut(), Aleph::DynDlist< typename GT::Node * >::DynDlist() y Aleph::DynDlist< typename GT::Node * >::operator=().

+ Gráfico de llamadas a esta función:


La documentación para esta clase fue generada a partir del siguiente fichero:

Leandro Rabindranath León