void * list_get(t_list *self, int index)
Retorna el contenido de una posicion determinada de la lista.
t_list_iterator * list_iterator_create(t_list *list)
Inicializa una iteración externa de la lista. Permite recorrer la lista y modificarla al mismo tiempo...
int list_count_satisfying(t_list *self, bool(*condition)(void *))
Cuenta la cantidad de elementos de la lista que devuelven true al aplicarles la condición.
t_list * list_take(t_list *self, int count)
Retorna una nueva lista con los primeros n elementos.
int list_add(t_list *self, void *element)
Agrega un elemento al final de la lista.
int list_size(t_list *self)
Retorna el tamaño de la lista.
bool list_is_empty(t_list *self)
Verifica si la lista esta vacia.
bool list_remove_element(t_list *self, void *element)
Remueve al elemento de la lista recibido por parámetro.
void list_add_all(t_list *self, t_list *other)
Agrega todos los elementos de la segunda lista al final de la primera.
void * list_replace(t_list *self, int index, void *element)
Coloca un elemento en una de la posiciones de la lista retornando el valor anterior.
t_list * list_duplicate(t_list *self)
Crea una lista nueva con los mismos elementos que la original.
t_list * list_slice_and_remove(t_list *self, int start, int count)
Retorna una nueva lista con los primeros n elementos partiendo desde el índice indicado,...
void * list_get_maximum(t_list *self, void *(*maximum)(void *, void *))
Retorna el maximo de la lista según el comparador.
void * list_remove(t_list *self, int index)
Remueve un elemento de la lista de una determinada posicion y lo retorna.
void list_remove_and_destroy_element(t_list *self, int index, void(*element_destroyer)(void *))
Remueve un elemento de la lista de una determinada posicion y libera la memoria.
void list_replace_and_destroy_element(t_list *self, int index, void *element, void(*element_destroyer)(void *))
Coloca un valor en una de la posiciones de la lista liberando el valor anterior.
void list_iterate(t_list *self, void(*closure)(void *))
Itera la lista llamando al closure por cada elemento. En caso de querer modificar la lista durante la...
bool list_iterator_has_next(t_list_iterator *iterator)
Devuelve true si quedan elementos de la lista por recorrer.
t_list * list_filter(t_list *self, bool(*condition)(void *))
Retorna una nueva lista con los elementos que cumplen la condicion.
void * list_iterator_next(t_list_iterator *iterator)
Avanza hacia el siguiente elemento a iterar de la lista y lo devuelve.
void list_remove_and_destroy_by_condition(t_list *self, bool(*condition)(void *), void(*element_destroyer)(void *))
Remueve y libera el primer elemento de la lista que haga que condition devuelva true.
t_list * list_slice(t_list *self, int start, int count)
Retorna una nueva lista con los primeros n elementos partiendo desde el índice indicado.
t_list * list_create(void)
Crea una lista.
void * list_find(t_list *self, bool(*closure)(void *))
Retorna el primer valor encontrado, el cual haga que condition devuelva true, o NULL en caso de no en...
int list_iterator_index(t_list_iterator *iterator)
Devuelve el índice del elemento actual de la iteración.
void list_destroy_and_destroy_elements(t_list *self, void(*element_destroyer)(void *))
Destruye una lista y sus elementos contenidos llamando a la función element_destroyer sobre cada uno ...
void list_clean(t_list *self)
Quita todos los elementos de la lista, sin liberarlos.
int list_add_sorted(t_list *self, void *data, bool(*comparator)(void *, void *))
Agrega un elemento a una lista ordenada, manteniendo el orden definido por el comparador.
t_list * list_sorted(t_list *self, bool(*comparator)(void *, void *))
Retorna una lista nueva ordenada segun el comparador.
void list_iterator_remove(t_list_iterator *iterator)
Remueve de la lista al elemento actual de la iteración.
t_list * list_map(t_list *self, void *(*transformer)(void *))
Retorna una nueva lista con los elementos transformados.
bool list_all_satisfy(t_list *self, bool(*condition)(void *))
Determina si todos los elementos de la lista devuelven true al aplicarles la condición.
void * list_replace_by_condition(t_list *self, bool(*condition)(void *), void *element)
Coloca un elemento en la posición de la lista que cumpla con la condición, retornando el valor anteri...
void list_iterator_destroy(t_list_iterator *iterator)
Finaliza la instancia de iteración externa liberando sus recursos.
t_list * list_flatten(t_list *self)
Retorna una nueva lista con los elementos de la lista de listas recibida.
void * list_remove_by_condition(t_list *self, bool(*condition)(void *))
Remueve el primer elemento de la lista que haga que condition devuelva true.
void list_clean_and_destroy_elements(t_list *self, void(*element_destroyer)(void *))
Quita todos los elementos de la lista y los libera llamando a la función element_destroyer sobre cada...
void list_destroy(t_list *self)
Destruye una lista sin liberar los elementos contenidos en los nodos.
void list_remove_and_destroy_all_by_condition(t_list *self, bool(*condition)(void *), void(*element_destroyer)(void *))
Remueve y destruye todos los elementos de la lista que hagan que condition devuelva true.
void list_add_in_index(t_list *self, int index, void *element)
Agrega un elemento en una posicion determinada de la lista.
bool list_any_satisfy(t_list *self, bool(*condition)(void *))
Determina si algún elemento de la lista devuelve true al aplicarle la condición.
void * list_fold(t_list *self, void *seed, void *(*operation)(void *, void *))
Devuelve un valor que resulta de aplicar la operacion entre todos los elementos de la lista,...
void * list_get_minimum(t_list *self, void *(*minimum)(void *, void *))
Retorna el minimo de la lista según el comparador.
t_list * list_take_and_remove(t_list *self, int count)
Retorna una nueva lista con los primeros n elementos, eliminando del origen estos elementos.
void list_sort(t_list *self, bool(*comparator)(void *, void *))
Ordena la lista segun el comparador.
void * list_fold1(t_list *self, void *(*operation)(void *, void *))
Devuelve un valor que resulta de aplicar la operacion entre todos los elementos de la lista,...
void list_iterator_add(t_list_iterator *iterator, void *data)
Agrega a la lista un elemento delante del actual y detrás del siguiente. Luego, avanza hacia el eleme...
Iterador de listas. Inicializar con list_iterator_create()
Definition: list.h:41
t_list * list
Definition: list.h:42
t_link_element ** next
Definition: list.h:44
t_link_element ** actual
Definition: list.h:43
int index
Definition: list.h:45
Estructura de una lista enlazada. Inicializar con list_create()
Definition: list.h:32
t_link_element * head
Definition: list.h:33
int elements_count
Definition: list.h:34