libin103 1.4
Bibliothèque de structures de données en C
|
Liste chainée contenant des valeurs de type void* Plus de détails...
#include <stdlib.h>
#include <stdbool.h>
Aller au code source de ce fichier.
Structures de données | |
struct | generic_list_elmt_ |
Type de données pour représenter un maillon d'une liste chainée contenant des void* Plus de détails... | |
struct | generic_list_ |
Type de données pour représenter une liste chainée contenant des void* Plus de détails... | |
Définitions de type | |
typedef 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* | |
typedef struct generic_list_ | generic_list_t |
Type de données pour représenter une liste chainée contenant des void* | |
Fonctions | |
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. | |
void | generic_list_destroy (generic_list_t *list) |
Destruction d'une liste chainée. | |
int | generic_list_ins_next (generic_list_t *list, generic_list_elmt_t *element, const void *data) |
Insertion dans une liste chainée. | |
int | generic_list_rem_next (generic_list_t *list, generic_list_elmt_t *element, void **data) |
Suppression dans une liste chainée. | |
int | generic_list_size (generic_list_t *list) |
Accesseur sur la taille de la liste. | |
generic_list_elmt_t * | generic_list_head (generic_list_t *list) |
Accesseur sur le premier élément de la liste. | |
generic_list_elmt_t * | generic_list_tail (generic_list_t *list) |
Accesseur sur le dernier élément 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. | |
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. | |
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_next (generic_list_elmt_t *element) |
Accesseur sur le successeur d'un élément. | |
Liste chainée contenant des valeurs de type void*
typedef 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*
Une liste chainée est composée de plusieurs maillons. Chacun contient une données et un pointeur vers le prochain maillon
typedef struct generic_list_ generic_list_t |
Type de données pour représenter une liste chainée contenant des void*
Une liste chainée permet un accès direct à la taille (nombre d'éléments de la chaine), vers le premier élément et vers le dernier élément.
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.
Etant donné un pointeur vers un élément d'une liste chaînée, retourne la valeur de la donnée stockée dans cet élément
element | est un pointeur vers la structure de données generic_list_elmt_t |
void generic_list_destroy | ( | generic_list_t * | list | ) |
Destruction d'une liste chainée.
Parcours la liste pour détruire chaque maillon
list | est un pointeur vers la structure de données liste chainée generic_list_t |
generic_list_elmt_t * generic_list_head | ( | generic_list_t * | list | ) |
Accesseur sur le premier élément de la liste.
Etant donné un pointeur vers une liste chainée, retourne la valeur du pointeur sur l'élément en tête
list | est un pointeur vers la structure de données liste chainée generic_list_t |
void generic_list_init | ( | generic_list_t * | list, |
int(*)(const void *key1, const void *key2) | compare, | ||
void *(*)(const void *data) | build, | ||
void(*)(void *data) | destroy ) |
Initialisation d'une nouvelle liste chainée.
Met à zéro la taille et à NULL les pointeurs vers le premier et le dernier élément de la liste. Cette fonction nécessite une fonction de comparaison des éléments de la file, une fonction de construction d'un élément de la file et une fonction de destruction des éléments de la file.
list | est un pointeur vers la structure de données liste chainée generic_list_t |
compare | fonction permettant la comparaison de deux éléments de la liste |
build | fonction permettant la construction d'une valeur de la liste |
destroy | fonction permettant la destruction d'une valeur de la liste |
int generic_list_ins_next | ( | generic_list_t * | list, |
generic_list_elmt_t * | element, | ||
const void * | data ) |
Insertion dans une liste chainée.
Etant donné un pointeur vers une liste chainée et un pointeur vers un élément de cette liste, ajout d'un nouvel élément après l'élément passé en argument. Si element est le pointeur NULL alors l'insertion se fait en tête de liste.
list | est un pointeur vers la structure de données liste chainée generic_list_t |
element | un pointeur vers la structure de donnée maillon generic_list_elmt_t |
data | une valeur de type void* à ajouter dans la liste dans un nouveau maillon |
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.
Etant donné un pointeur vers une liste chainée et un pointeur vers un élément, indique si l'élément est l'élément de tête de la liste
list | est un pointeur vers une structure de données liste chainée generic_list_t |
element | est un pointeur vers une structure de données generic_list_elmt_t |
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.
Etant donné un pointeur vers une liste chainée et un pointeur vers un élément, indique si l'élément est l'élément de queue de la liste
list | est un pointeur vers une structure de données liste chainée generic_list_t |
element | est un pointeur vers une structure de données generic_list_elmt_t |
generic_list_elmt_t * generic_list_next | ( | generic_list_elmt_t * | element | ) |
Accesseur sur le successeur d'un élément.
Etant donné un pointeur vers un élément d'une liste chaînée, retourne la valeur du pointeur vers le prochain élément de la liste.
element | est un pointeur vers la structure de données generic_list_elmt_t |
int generic_list_rem_next | ( | generic_list_t * | list, |
generic_list_elmt_t * | element, | ||
void ** | data ) |
Suppression dans une liste chainée.
Etant donné un pointeur vers une liste chainée et un pointeur vers un élément de cette liste, suppression de l'élément après l'élément passé en argument. Si element est le pointeur NULL alors la suppression se fait en tête de liste.
list | est un pointeur vers la structure de données liste chainée generic_list_t |
element | un pointeur vers la structure de donnée maillon generic_list_elmt_t |
data | un pointeur de type void* pour récupérer la donnée associée à l'élément supprimé |
int generic_list_size | ( | generic_list_t * | list | ) |
Accesseur sur la taille de la liste.
Etant donné un pointeur vers une liste chainée, retourne la valeur du champ size
list | est un pointeur vers la structure de données liste chainée generic_list_t |
generic_list_elmt_t * generic_list_tail | ( | generic_list_t * | list | ) |
Accesseur sur le dernier élément de la liste.
Etant donné un pointeur vers une liste chainée, retourne la valeur du pointeur sur l'élément en queue
list | est un pointeur vers la structure de données liste chainée generic_list_t |