libin103 1.4
Bibliothèque de structures de données en C
Chargement...
Recherche...
Aucune correspondance
Structures de données | Définitions de type | Fonctions
Référence du fichier generic_list.h

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_tgeneric_list_head (generic_list_t *list)
 Accesseur sur le premier élément de la liste.
 
generic_list_elmt_tgeneric_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_tgeneric_list_next (generic_list_elmt_t *element)
 Accesseur sur le successeur d'un élément.
 

Description détaillée

Liste chainée contenant des valeurs de type void*

Documentation des définitions de type

◆ 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

◆ generic_list_t

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.

Documentation des fonctions

◆ generic_list_data()

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

Paramètres
elementest un pointeur vers la structure de données generic_list_elmt_t
Renvoie
la valeur de la donnée du type void* contenu dans l'élément

◆ generic_list_destroy()

void generic_list_destroy ( generic_list_t * list)

Destruction d'une liste chainée.

Parcours la liste pour détruire chaque maillon

Paramètres
listest un pointeur vers la structure de données liste chainée generic_list_t

◆ generic_list_head()

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

Paramètres
listest un pointeur vers la structure de données liste chainée generic_list_t
Renvoie
l'adresse du premier élément ou NULL si la chaine est vide

◆ generic_list_init()

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.

Paramètres
listest un pointeur vers la structure de données liste chainée generic_list_t
comparefonction permettant la comparaison de deux éléments de la liste
buildfonction permettant la construction d'une valeur de la liste
destroyfonction permettant la destruction d'une valeur de la liste

◆ generic_list_ins_next()

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.

Paramètres
listest un pointeur vers la structure de données liste chainée generic_list_t
elementun pointeur vers la structure de donnée maillon generic_list_elmt_t
dataune valeur de type void* à ajouter dans la liste dans un nouveau maillon
Renvoie
un entier indiquant si tout c'est bien passé (0 si ok, -1 en cas de problème d'allocation mémoire)

◆ generic_list_is_head()

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

Paramètres
listest un pointeur vers une structure de données liste chainée generic_list_t
elementest un pointeur vers une structure de données generic_list_elmt_t
Renvoie
un booléen indiquant vrai si element est le premier élement de list ou faux sinon

◆ generic_list_is_tail()

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

Paramètres
listest un pointeur vers une structure de données liste chainée generic_list_t
elementest un pointeur vers une structure de données generic_list_elmt_t
Renvoie
un booléen indiquant vrai si element est le dernier élement de list ou faux sinon

◆ generic_list_next()

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.

Paramètres
elementest un pointeur vers la structure de données generic_list_elmt_t
Renvoie
la valeur du pointeur du prochain élément ou NULL s'il n'y a pas de successeur

◆ generic_list_rem_next()

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.

Paramètres
listest un pointeur vers la structure de données liste chainée generic_list_t
elementun pointeur vers la structure de donnée maillon generic_list_elmt_t
dataun pointeur de type void* pour récupérer la donnée associée à l'élément supprimé
Renvoie
un entier indiquant si tout c'est bien passé (0 si ok, -1 en cas de problème mémoire)

◆ generic_list_size()

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

Paramètres
listest un pointeur vers la structure de données liste chainée generic_list_t
Renvoie
un entier indiquant la taille de la liste

◆ generic_list_tail()

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

Paramètres
listest un pointeur vers la structure de données liste chainée generic_list_t
Renvoie
l'adresse du dernier élément ou NULL si la chaine est vide