#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) |
| T | remove_first () throw (std::exception, std::underflow_error) |
| T | 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) |
| T | 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. | |
| T | 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) | |
| Dnode & | swap (Dnode &p) |
| Dnode & | swap (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. | |
| Dnode & | operator= (const Dnode &p) |
| Dnode & | operator= (Dnode &&p) |
| Dnode & | operator= (const T &_data) |
| Asigna al dato del nodo el valor de _data. | |
| Dnode & | operator= (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 () |
Métodos públicos heredados desde Aleph::Dlink | |
| Dlink & | swap (Dlink &l) |
| Dlink (const Dlink &) | |
| Constructor copia reinicia (no copia) | |
| Dlink (Dlink &&l) | |
| Dlink & | operator= (const Dlink &l) |
| Dlink & | operator= (Dlink &&l) |
| void | reset () |
| Reinicia dlink (equivalente a que se vacíe la lista) | |
| void | init () |
| inicializa dlink. A usarse cuandos e use malloc | |
| void | swap (Dlink *link) |
| bool | is_empty () const |
retorna true si this está vacía | |
| bool | is_unitarian () const |
retorna true si this tiene exactamente un elemento | |
| bool | is_unitarian_or_empty () const |
retorna true si this tiene uno o ningún elemento | |
| void | insert (Dlink *node) |
| void | push (Dlink *node) |
| void | append (Dlink *node) |
| Dlink *& | get_next () |
Retorna enlace después de this. | |
| Dlink * | top () |
| retorna el primer nodo (como si fuera pila) | |
| Dlink *& | get_prev () |
Retorna enlace antes de this. | |
| Dlink *& | get_first () |
Retorna el enlace del primer elemento de this. | |
| Dlink *& | get_last () |
Retorna el enlace del último elelemto de this. | |
| void | insert_list (Dlink *head) |
| void | append_list (Dlink *head) |
| void | concat_list (Dlink *head) |
| void | concat_list (Dlink &head) |
| void | del () |
Elimina this de su contexto en una lista. | |
| void | erase () |
Elimina this de su contexto en una lista. | |
| Dlink * | remove_prev () |
| Dlink * | remove_next () |
Elimina el sucesor de this. | |
| Dlink * | remove_last () |
| Elimina el último elemento de this. | |
| Dlink * | remove_first () |
| Elimina el primer elemento de this. | |
| Dlink * | pop () |
| Elimina el primer elemento de this (como si fuese pila) | |
| size_t | reverse_list () |
| size_t | split_list (Dlink &l, Dlink &r) |
| Dlink | cut_list (Dlink *link) |
Corta la lista this por el enlace link y pasa todos los elementos a la lista vacía list. Más... | |
| void | remove_all_and_delete () |
| Elimina y libera memoria todos los nodos de this. Más... | |
| bool | check () |
Otros miembros heredados | |
Métodos públicos estáticos heredados desde Aleph::Dnode< T > | |
| static Dnode * | data_to_node (T &data) |
Atributos protegidos heredados desde Aleph::Dlink | |
| Dlink * | prev |
| Dlink * | next |
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.
| T | el tipo de elementos de la lista. |
|
inline |
Constructor copia con semántica rvalue; todos los elementos de this son copiados.
|
inline | ||||||||||||||||||
Inserta un elemento al final de la lista.
Inserta en la lista this como último elemento una copia de _data.
Después de la operación el último elemento de la lista es _data.
| [in] | _data | el dato a insertarse. |
| bad_alloc | si no hay memoria para el nuevo elemento. |
Referenciado por Aleph::Compute_Cut_Nodes< GT, SA >::compute_blocks(), Aleph::compute_cut_nodes(), Aleph::compute_maximum_cardinality_bipartite_matching(), Aleph::compute_min_cut(), Aleph::Compute_Cut_Nodes< GT, SA >::cut_nodes(), Aleph::DynDlist< typename GT::Node * >::DynDlist(), Aleph::edge_connectivity(), Aleph::inconnected_components(), Aleph::kosaraju_connected_components(), Aleph::Net_Graph< NodeT, ArcT >::make_super_sink(), Aleph::Net_Graph< NodeT, ArcT >::make_super_source(), Aleph::Compute_Cut_Nodes< GT, SA >::map_cut_graph(), Aleph::map_cut_graph(), Aleph::Net_Sup_Dem_Graph< NodeT, ArcT >::non_feasible_nodes(), Aleph::Tarjan_Connected_Components< GT, SA >::operator()(), Aleph::DynDlist< typename GT::Node * >::operator=(), Aleph::DynDlist< typename GT::Node * >::put() y Aleph::vertex_connectivity().
Gráfico de llamadas a esta función:
|
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.
| [in,out] | list | lista a ser copiada al final de this. Este parámetro deviene vacío luego de la inserción. |
|
inline |
Elimina el elemento data. Atención: data debe ser una referencia a un elemento dentro de la secuencia.
|
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.
| [in] | item | el dato a insertarse. |
| bad_alloc | si 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:
|
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.
| [in,out] | list | lista a ser copiada al principio de this. Este parámetro deviene vacío luego de la inserción. |
|
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.
| [in] | list | lista a ser asignada |
| bad_alloc | si no hay memoria. |
|
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.
| [in] | list | lista a ser asignada |
| bad_alloc | si no hay memoria. |
|
inline |
Elimina el elemento data. Atención: data debe ser una referencia a un elemento dentro de la secuencia.
|
inline | |||||||||||||||||
Elimina el primer elemento de la lista: retorna una copia del elemento eliminado.
| underflow_error | si 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:
|
inline | |||||||||||||||||
Elimina el último elemento de la lista: retorna una copia del elemento eliminado.
| underflow_error | si la lista está vacía. |
|
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.
| [out] | l | primera partición. |
| [out] | r | segunda partición. |
| domain_error | si alguna de las listas l o r no están vacías. |
|
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.
| l | lista 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: