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 Clase Aleph::Dlink

#include <dlink.H>

+ Diagrama de herencias de Aleph::Dlink
+ Diagrama de colaboración para Aleph::Dlink:

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
 

Descripción detallada

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.

Ver también
Macros_Dlink Dlink::Iterator Dnode Dlist DynDlist

Documentación de las funciones miembro

void Aleph::Dlink::append_list ( Dlink *  head)
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

Parámetros
[in]headcabecera 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().

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

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

void Aleph::Dlink::concat_list ( Dlink *  head)
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.

Parámetros
headcabecera 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().

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

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

Dlink Aleph::Dlink::cut_list ( Dlink *  link)
inline

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.

Parámetros
[in]linkpuntero al elemento de la lista this a partir del cual se desea realizar la partición.
Devuelve
list cabecera de lista vacía. Luego de la operación, esta lista contiene los elementos que estaban en this a partir de link

Hace referencia a del() y is_empty().

Referenciado por Aleph::list< T >::splice().

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

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

void Aleph::Dlink::insert ( Dlink *  node)
inline

Inserta node después de this.

Parámetros
[in]nodenodo 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().

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

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

void Aleph::Dlink::insert_list ( Dlink *  head)
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

Parámetros
[in]headcabecera 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().

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

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

Dlink& Aleph::Dlink::operator= ( const Dlink &  l)
inline

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.

Parámetros
[in]lcabecera de lista

Hace referencia a is_empty() y reset().

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

void Aleph::Dlink::push ( Dlink *  node)
inline

Inserta node como pila.

Parámetros
[in]nodenodo aislado que debe apuntar a sí mismo sin estar enlado a otros elementos

Hace referencia a insert().

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

void Aleph::Dlink::remove_all_and_delete ( )
inline

Elimina y libera memoria todos los nodos de this.

Nota
Los elementos deben haber sido apartados con new

Hace referencia a Aleph::Dlink::Iterator::has_current().

Referenciado por Aleph::list< T >::insert().

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

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

Dlink* Aleph::Dlink::remove_prev ( )
inline

Elimina el anterior a this.

Elimina el nodo anterior de this.

Devuelve
dirección del nodo recién eliminado

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().

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

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

size_t Aleph::Dlink::reverse_list ( )
inline

Invierte lista encabezada por this y retorna la cantidad de elementos de la lista.

Devuelve
cantidad de elementos que tiene la lista

Hace referencia a insert(), is_empty() y remove_next().

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

size_t Aleph::Dlink::split_list ( Dlink &  l,
Dlink &  r 
)
inline

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.

Parámetros
[out]llista con los primeros n/2 elementos
[out]rlista con los últimos n/2 elementos
Devuelve
cantidad total de elementos que tenía la lista this antes de la operación.

Hace referencia a append(), Aleph::count(), insert(), is_empty(), remove_next() y remove_prev().

Referenciado por Aleph::DynDlist< typename GT::Node * >::split_list().

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

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

void Aleph::Dlink::swap ( Dlink *  link)
inline

Intercambia listas encabezadas con this y link en tiempo constante.

Parámetros
[in]linkenlace a cabecera de la otra lista de intercambio

Hace referencia a is_empty() y reset().

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


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

Leandro Rabindranath León