Tipos públicos | |
typedef T | dnode_type |
Exporta tipo del dato que contiene el nodo. | |
Métodos públicos | |
void | append (Dlink *node) |
Inserta node antes de this . | |
void | append_list (Dlink *head) |
Inserta lista encabezada por head antes del nodo this . | |
void | concat_list (Dlink *head) |
Concatena lista encabezada por head a lista encabezada por this. | |
void | cut_list (Dlink *link, Dlink *list) |
Corta la lista this por el enlace link y pasa todos los elementos a la lista vacía list . | |
void | del () |
Elimina this de su contexto en una lista. | |
Dnode (const Dnode &node) | |
Constructor copia de nodo. | |
Dnode (const T &_data) | |
Construye nodo con dato _data. | |
T & | get_data () |
Retorna referencia a dato contenido en el nodo. | |
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. | |
void | insert (Dlink *node) |
Inserta node después de this. | |
void | insert_list (Dlink *head) |
Inserta lista encabezada por head después del nodo this . | |
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 | |
Dnode & | operator= (const T &_data) |
Asigna al dato del nodo el valor de _data. | |
void | remove_all_and_delete () |
Elimina y libera memoria todos los nodos de this. | |
Dnode< T > * | remove_next () |
Elimina sucesor a this y retorna su dirección. | |
Dnode< T > * | remove_prev () |
Elimina anterior a this y retorna su dirección. | |
void | reset () |
Reinicia dlink (equivalente a que se vacíe la lista). | |
int | reverse_list () |
Invierte lista encabezada por this y retorna la cantidad de elementos de la lista. | |
size_t | split_list (Dlink &l, Dlink &r) |
Particiona lista encabezada por this en dos listas equitativas que son colocadas en l y r respectivamente. | |
void | swap (Dlink *link) |
Intercambia listas encabezadas con this y link en tiempo constante. | |
Clases | |
struct | Iterator |
Iterador sobre los nodos de una lista doble circular. Más... |
T | el tipo dato que guarda el nodo. |
Definición en la línea 60 del archivo tpl_dnode.H.
Sólo se copia el dato
Definición en la línea 86 del archivo tpl_dnode.H.
void append | ( | Dlink * | node | ) | [inline, inherited] |
[in] | node | puntero a nodo; el nodo no debe formar de una lista |
Definición en la línea 171 del archivo dlink.H.
Hace referencia a Dlink::is_empty(), Dlink::next, y Dlink::prev.
Referenciado por Aleph::dlink_random_search(), Aleph::dlink_random_select(), List_Graph::insert_arc(), Tree_Node::insert_left_sibling(), List_Graph::insert_node(), Aleph::merge_lists(), Aleph::quicksort(), Aleph::selection_sort(), y Dlink::split_list().
void append_list | ( | Dlink * | head | ) | [inline, inherited] |
La función asume que this es un nodo que conforma una lista y que antes de él se desea insertar enteramente la lista cuyo nodo cabecera es head
[in] | head | cabecera de la lista que se desea insertar antes del nodo this |
Definición en la línea 230 del archivo dlink.H.
Hace referencia a Dlink::is_empty(), Dlink::next, Dlink::prev, y Dlink::reset().
Referenciado por DynDlist< Aleph::Path::Path_Desc >::append_list().
void concat_list | ( | Dlink * | head | ) | [inline, inherited] |
El método asume que this es una cabecera de una lista y le concatena enteramente la lista cuya cabecera es head.
Después de la operación head deviene vacío.
head | cabecera de la lista que se desea concatenar |
Definición en la línea 250 del archivo dlink.H.
Hace referencia a Dlink::is_empty(), Dlink::next, Dlink::prev, Dlink::reset(), y Dlink::swap().
Referenciado por Aleph::dlink_random_search(), Aleph::dlink_random_select(), Aleph::merge_lists(), y Aleph::quicksort().
Particiona la lista cuyo nodo cabecera es this
, a partir de uno de sus nodos apuntados por link
y coloca todos los elementos desde link
hasta el final de la lista en la lista vacía list
.
[in] | link | puntero al elemento de la lista this a partir del cual se desea realizar la partición. |
[out] | list | cabecera de lista vacía. Luego de la operación, esta lista contiene los elementos que estaban en this a partir de link |
Definición en la línea 389 del archivo dlink.H.
Hace referencia a Dlink::is_empty(), Dlink::next, y Dlink::prev.
Referenciado por list::splice().
void insert | ( | Dlink * | node | ) | [inline, inherited] |
[in] | node | nodo aislado que debe apuntar a sí mismo sin estar enlado a otros elementos |
Definición en la línea 155 del archivo dlink.H.
Hace referencia a Dlink::is_empty(), Dlink::next, y Dlink::prev.
Referenciado por Tree_Node::insert_right_sibling(), Dlink::reverse_list(), y Dlink::split_list().
void insert_list | ( | Dlink * | head | ) | [inline, inherited] |
La función asume que this es un nodo que conforma una lista y que a partir de él se desea insertar enteramente la lista cuyo nodo cabecera es head
[in] | head | cabecera de la lista que se desea insertar en el nodo this |
Definición en la línea 209 del archivo dlink.H.
Hace referencia a Dlink::is_empty(), Dlink::next, Dlink::prev, y Dlink::reset().
Referenciado por DynDlist< Aleph::Path::Path_Desc >::insert_list().
void remove_all_and_delete | ( | ) | [inline, inherited] |
new
Definición en la línea 658 del archivo dlink.H.
Hace referencia a Dlink::del(), Dlink::Iterator::get_current(), Dlink::Iterator::has_current(), y Dlink::Iterator::next().
Referenciado por GenLinearHashTable< Key, LhashBucket, Aleph::equal_to< Key > >::empty().
int reverse_list | ( | ) | [inline, inherited] |
Definición en la línea 317 del archivo dlink.H.
Hace referencia a Dlink::insert(), Dlink::is_empty(), Dlink::remove_next(), y Dlink::swap().
Retorna la cantidad de elementos que tenía this antes de la partición.
El método toma la lista cuyo nodo cabecera es this y la particiona equitativamente por el centro.
Después de la operación la this deviene vacío.
[out] | l | lista con los primeros n/2 elementos |
[out] | r | lista con los últimos n/2 elementos |
Definición en la línea 356 del archivo dlink.H.
Hace referencia a Dlink::append(), Dlink::insert(), Dlink::is_empty(), Dlink::remove_next(), y Dlink::remove_prev().
Referenciado por Aleph::mergesort(), y DynDlist< Aleph::Path::Path_Desc >::split_list().
void swap | ( | Dlink * | link | ) | [inline, inherited] |
[in] | link | enlace a cabecera de la otra lista de intercambio |
Definición en la línea 110 del archivo dlink.H.
Hace referencia a Dlink::is_empty(), Dlink::next, Dlink::prev, y Dlink::reset().
Referenciado por Dlink::concat_list(), Aleph::dlink_random_search(), Aleph::insertion_sort(), Dlink::reverse_list(), Aleph::selection_sort(), y DynDlist< Aleph::Path::Path_Desc >::swap().