#include <dlink.H>
Clases | |
class | Iterator |
Iterador sobre enlaces. Más... | |
Métodos públicos | |
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 () |
Atributos protegidos | |
Dlink * | prev |
Dlink * | next |
Enlace de nodo de lista circular doblemente enlazada con nodo cabecera.
La clase Dlink implanta todo el manejo de enlaces que sea posible para manejar nodos pertenecientes a listas doblemente enlazadas, circulares, con nodo cabecera.
Debe prestarse mucha atención al hecho de que Dlink no define un nodo, sino el doble enlace.
|
inline |
Inserta node antes de this
.
[in] | node | puntero a nodo; el nodo no debe formar de una lista |
Hace referencia a is_empty().
Referenciado por Aleph::List_Graph< __Graph_Node, __Graph_Arc >::connect_arc(), Aleph::dlink_random_search(), Aleph::dlink_random_select(), Aleph::GenLhashTable< Key, LhashBucket< Key >, Aleph::equal_to< Key > >::insert(), Aleph::GenLinearHashTable< Key, LinHashBucketVtl, Cmp >::insert(), Aleph::list< T >::insert(), Aleph::Tree_Node< T >::insert_left_sibling(), Aleph::List_Graph< __Graph_Node, __Graph_Arc >::insert_node(), Aleph::insert_sorted(), Aleph::quicksort(), Aleph::selection_sort() y split_list().
|
inline |
Inserta lista encabezada por head antes del nodo this
.
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 |
Hace referencia a is_empty() y reset().
Referenciado por Aleph::DynDlist< typename GT::Node * >::append_list().
|
inline |
Concatena lista encabezada por head a lista encabezada por this.
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 |
Hace referencia a is_empty() y reset().
Referenciado por Aleph::dlink_random_search(), Aleph::dlink_random_select() y Aleph::quicksort().
Corta la lista this
por el enlace link
y pasa todos los elementos a la lista vacía list
.
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. |
this
a partir de link
Hace referencia a del() y is_empty().
Referenciado por Aleph::list< T >::splice().
|
inline |
Inserta node después de this.
[in] | node | nodo aislado que debe apuntar a sí mismo sin estar enlado a otros elementos |
Hace referencia a is_empty().
Referenciado por Aleph::Hash_Cache< Key, Data, Cmp >::expand(), Aleph::Hash_Cache< Key, Data, Cmp >::Hash_Cache(), Aleph::Hash_Cache< Key, Data, Cmp >::insert(), Aleph::Tree_Node< T >::insert_right_sibling(), push(), reverse_list() y split_list().
|
inline |
Inserta lista encabezada por head después del nodo this
.
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 |
Hace referencia a is_empty() y reset().
Referenciado por Aleph::list< T >::insert() y Aleph::DynDlist< typename GT::Node * >::insert_list().
Asignación reinicia (no copia).
Operador de asignación sólo con propósitos de compatibilidad. En realidad no ocurre la copia. Sólo this
se reinicia para que apunte a sí mismo.
[in] | l | cabecera de lista |
Hace referencia a is_empty() y reset().
|
inline |
Inserta node como pila.
[in] | node | nodo aislado que debe apuntar a sí mismo sin estar enlado a otros elementos |
Hace referencia a insert().
|
inline |
Elimina y libera memoria todos los nodos de this.
new
Hace referencia a Aleph::Dlink::Iterator::has_current().
Referenciado por Aleph::list< T >::insert().
|
inline |
Elimina el anterior a this
.
Elimina el nodo anterior de this
.
Hace referencia a del().
Referenciado por Aleph::Dnode< typename GT::Node * >::remove_last(), remove_last(), Aleph::Dnode< typename GT::Node * >::remove_prev() y split_list().
|
inline |
Invierte lista encabezada por this
y retorna la cantidad de elementos de la lista.
Hace referencia a insert(), is_empty() y remove_next().
Particiona lista encabezada por this en dos listas equitativas que son colocadas en l y r respectivamente. 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 |
Hace referencia a append(), Aleph::count(), insert(), is_empty(), remove_next() y remove_prev().
Referenciado por Aleph::DynDlist< typename GT::Node * >::split_list().
|
inline |
Intercambia listas encabezadas con this
y link
en tiempo constante.
[in] | link | enlace a cabecera de la otra lista de intercambio |
Hace referencia a is_empty() y reset().