32 typedef double (*list_func_eval)(
const void *element,
35 typedef bool (*list_func_lt)(
const void *e1,
39 typedef bool (*list_func_predicate)(
const void *,
void *);
49 list_delete(
list **l,
void (*ldelete)(
void **));
52 list_delete_const(
const list **l,
void (*ldelete)(
void **));
55 list_size(
const list *l);
65 list_first_const(
const list *l);
68 list_next_const(
const list *l);
71 list_first_pair(
list *l,
76 list_next_pair(
list *l,
81 list_first_pair_const(
const list *l,
86 list_next_pair_const(
const list *l,
93 list_insert(
list *l,
void *e);
96 list_remove_const(
list *l,
const void *e);
99 list_remove(
list *l,
void *e);
103 list_reverse(
list *l);
107 void *(*duplicate)(
const void *),
108 list_func_predicate predicate,
113 list_min(
list *l, list_func_lt less_than,
void *data);
116 list_min_val(
list *l, list_func_eval eval,
void *data);
119 list_max(
list *l, list_func_lt less_than,
void *data);
122 list_max_const(
const list *l, list_func_lt less_than,
void *data);
125 list_max_val(
list *l, list_func_eval eval,
void *data);
128 list_kth(
list *l,
int k, list_func_lt less_than,
void *data);
131 list_kth_const(
const list *l,
int k, list_func_lt less_than,
void *data);
134 list_kth_val(
list *l,
int k, list_func_eval eval,
void *data);
137 list_kth_val_const(
const list *l,
int k, list_func_eval eval,
void *data);
141 list_mean(
const list *l, list_func_eval eval,
void *data);
144 list_mean_optimal(
const list *l,
145 list_func_eval eval,
void *data_eval,
146 list_func_eval eval_err,
void *data_err,
151 list_median(
const list *l, list_func_eval eval,
void *data);
154 list_mad(
list *l, list_func_eval eval,
void *data);
list * list_duplicate(const list *l, void *(*duplicate)(const void *))
Copy constructor.
list * list_extract(const list *l, void *(*duplicate)(const void *), bool(*predicate)(const void *, void *), void *data)
Extract elements.
list * list_new(void)
Constructor.