#include <htlist.H>
Clases | |
class | Iterator |
Métodos públicos | |
HTList () | |
Inicializa una lista vacía. | |
HTList (Slinknc *l) | |
Inicializa una lista de un solo Slinknc. | |
bool | is_empty () const |
Retorna true si la lista está vacía. | |
bool | is_unitarian () const |
Retorna true si la lista contiene exactamente un solo elemento. | |
bool | is_unitarian_or_empty () const |
Retorna true si la lista tiene un elemento o está vacía. | |
Slinknc * | get_head () |
Retorna la cabeza de la lista (el primer elemento) | |
Slinknc * | get_tail () |
Retorna la cola de la lista (el último elemento) | |
Slinknc * | get_first () |
Retorna el primer elemento de la lista. | |
Slinknc * | get_last () |
Retorna el último elemento de la lista. | |
HTList & | swap (HTList &l) |
void | insert (Slinknc *link) |
Inserta link como primer elemento. | |
void | push (Slinknc *link) |
Inserta link como primer elemento. | |
void | append (Slinknc *link) |
Inserta link como último elemento. | |
void | append (HTList &l) |
void | put (Slinknc *link) |
Inserta link al final de la lista. | |
void | concat (HTList &l) |
Concatena a this toda la lista l; l deviene vacía. | |
void | concat_list (HTList &l) |
void | insert (HTList &l) |
Inserta toda la lista l antes de this; l deviene vacía. | |
void | insert (Slinknc *link, HTList &list) |
Slinknc * | remove_head () |
Slinknc * | remove_first () |
Elimina el primer elemento de this. | |
bool | remove (Slinknc *link) |
Slinknc * | pop () |
Elimina el primer elemento de this. | |
size_t | split_list (HTList &l, HTList &r) |
size_t | split (HTList &l, HTList &r) |
size_t | reverse () |
Invierte los elementos de la lista. Retorna el tamaño de la lista. | |
size_t | reverse_list () |
void | cut (Slinknc *link, HTList &list) |
void | cut_list (Slinknc *link, HTList &list) |
void | remove_all_and_delete () |
void | insert (const Iterator &it, HTList &list) |
void | cut_list (const Iterator &it, HTList &list) |
size_t | size () const |
Lista simplemente enlazada.
HTList modeliza una lista de objetos Slinknc. Un Slinknc es un enlace simple que puede estar contenido dentro de cualquier estructura.
Una HTlist mantiene dos referencias. Una llamada "cabeza" (head) correspondiente al primer Slinknc de la secuencia; y otra llamada "cola" o tail, correspondiente al último elemento de la secuencia.
Recuerde que esta clase maneja punteros a Slinknc, no a datos con tipo.
Véase Dynlist para una secuencia de tipos cualesquiera instrumentada con HTLink.
Para una explicación complementaria véase la documentación de Slinknc y Snodenc.
|
inline |
Inserta al final toda la lista l a this; l deviene vacía. Equivalente a concatenarle l a this.
Hace referencia a is_empty() y swap().
|
inline |
Esta es una función miembro sobrecargada que se suministra por conveniencia. Difiere de la anterior función solamente en los argumentos que acepta.
Hace referencia a append().
Corta this por el elemento link y coloca los elementos restantes (los que están después de link) en list
Hace referencia a is_empty().
Referenciado por cut_list().
Esta es una función miembro sobrecargada que se suministra por conveniencia. Difiere de la anterior función solamente en los argumentos que acepta.
Hace referencia a cut().
Corta this en la posición actual del iterador. Los elementos restantes se ponen en list
Hace referencia a cut().
Inserta a partir de link (contenido en la lista this) la lista list. list deviene vacía
|
inline |
Elimina el enlace con dirección link. Retorna true si en efecto fue eliminado
Hace referencia a is_empty() y Aleph::Slinknc::reset().
|
inline |
Asumiendo que los elementos fueron apartados con new, elimina todos los elementos de la lista y libera la memoria.
Hace referencia a is_empty() y remove_head().
|
inline |
Elimina el elemento en la cabeza (el primero). Retorna el elemento eliminado.
Hace referencia a is_empty() y Aleph::Slinknc::reset().
Referenciado por pop(), Aleph::DynList< GT >::remove(), remove_all_and_delete() y remove_first().
|
inline |
Esta es una función miembro sobrecargada que se suministra por conveniencia. Difiere de la anterior función solamente en los argumentos que acepta.
Hace referencia a reverse().
Esta es una función miembro sobrecargada que se suministra por conveniencia. Difiere de la anterior función solamente en los argumentos que acepta.
Hace referencia a split_list().
Divide this en dos listas equitativas sin alterar el orden de los elementos. l contiene los n/2 primeros elementos y r los n/2 siguientes. Retorna la cantidad total de elementos de this. this deviene vacía
Hace referencia a Aleph::count(), is_empty(), is_unitarian() y swap().
Referenciado por split().
Intercambia en tiempo constante (muy rápido) los elementos de this con los de l
Referenciado por append(), insert(), reverse() y split_list().