libin103 1.4
Bibliothèque de structures de données en C
Chargement...
Recherche...
Aucune correspondance
generic_list.h
Aller à la documentation de ce fichier.
1
6/*****************************************************************************
7 * *
8 * -------------------------------- list.h -------------------------------- *
9 * *
10 *****************************************************************************/
11
12#ifndef GENERIC_LIST_H
13#define GENERIC_LIST_H
14
15#include <stdlib.h>
16#include <stdbool.h>
17
18/*****************************************************************************
19 * *
20 * Define a structure for linked list elements. *
21 * *
22 *****************************************************************************/
23
35
36/*****************************************************************************
37 * *
38 * Define a structure for linked lists. *
39 * *
40 *****************************************************************************/
41
49typedef struct generic_list_ {
50 int size;
52 int (*compare)(const void *key1, const void *key2);
57 void* (*build)(const void *data);
60 void (*destroy)(void *data);
70
71/*****************************************************************************
72 * *
73 * --------------------------- Public Interface --------------------------- *
74 * *
75 *****************************************************************************/
76
98 int (*compare) (const void *key1, const void *key2),
99 void* (*build)(const void *data),
100 void (*destroy)(void *data));
101
110
131 generic_list_elmt_t *element,
132 const void *data);
133
154 generic_list_elmt_t *element,
155 void **data);
156
168
180
192
209 generic_list_elmt_t *element);
210
227
241
255
256#endif
int generic_list_rem_next(generic_list_t *list, generic_list_elmt_t *element, void **data)
Suppression dans une liste chainée.
bool generic_list_is_tail(generic_list_elmt_t *element)
Prédicat pour tester si un élément est le dernier maillon d'une liste chaînée.
struct generic_list_ generic_list_t
Type de données pour représenter une liste chainée contenant des void*
int generic_list_size(generic_list_t *list)
Accesseur sur la taille de la liste.
bool generic_list_is_head(generic_list_t *list, generic_list_elmt_t *element)
Prédicat pour tester si un élément est le premier maillon d'une liste chaînée.
struct generic_list_elmt_ generic_list_elmt_t
Type de données pour représenter un maillon d'une liste chainée contenant des void*
int generic_list_ins_next(generic_list_t *list, generic_list_elmt_t *element, const void *data)
Insertion dans une liste chainée.
generic_list_elmt_t * generic_list_tail(generic_list_t *list)
Accesseur sur le dernier élément de la liste.
void * generic_list_data(generic_list_elmt_t *element)
Accesseur sur la donnée contenue dans un élément d'une liste chaînée.
generic_list_elmt_t * generic_list_head(generic_list_t *list)
Accesseur sur le premier élément de la liste.
void generic_list_destroy(generic_list_t *list)
Destruction d'une liste chainée.
generic_list_elmt_t * generic_list_next(generic_list_elmt_t *element)
Accesseur sur le successeur d'un élément.
void generic_list_init(generic_list_t *list, int(*compare)(const void *key1, const void *key2), void *(*build)(const void *data), void(*destroy)(void *data))
Initialisation d'une nouvelle liste chainée.
Type de données pour représenter une liste chainée contenant des void*
Definition generic_list.h:49
int size
Definition generic_list.h:50
generic_list_elmt_t * tail
Definition generic_list.h:66
int(* compare)(const void *key1, const void *key2)
Definition generic_list.h:52
void(* destroy)(void *data)
Definition generic_list.h:60
generic_list_elmt_t * head
Definition generic_list.h:64
Type de données pour représenter un maillon d'une liste chainée contenant des void*
Definition generic_list.h:30
void * data
Definition generic_list.h:31
struct generic_list_elmt_ * next
Definition generic_list.h:32