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

Ensemble générique contenant des valeurs de type void* Plus de détails...

#include <stdlib.h>
#include <stdbool.h>
#include "generic_list.h"

Aller au code source de ce fichier.

Définitions de type

typedef generic_list_t generic_set_t
 Type de données pour représenter un ensemble générique contenant des valeurs de type void*
 

Fonctions

void generic_set_init (generic_set_t *set, int(*compare)(const void *key1, const void *key2), void *(*build)(const void *data), void(*destroy)(void *data))
 Initialisation d'un nouvel ensemble générique contenant des valeurs de type void*
 
void generic_set_destroy (generic_set_t *set)
 Destruction d'un ensemble.
 
int generic_set_insert (generic_set_t *set, const void *data)
 Ajouter un élément de type void* dans l'ensemble.
 
int generic_set_remove (generic_set_t *set, void **data)
 Supprimer un élément de type void* dans l'ensemble.
 
int generic_set_union (generic_set_t *setu, generic_set_t *set1, generic_set_t *set2)
 Union de deux ensembles.
 
int generic_set_intersection (generic_set_t *seti, generic_set_t *set1, generic_set_t *set2)
 Intersection de deux ensembles.
 
int generic_set_difference (generic_set_t *setd, generic_set_t *set1, generic_set_t *set2)
 Différence de deux ensembles.
 
bool generic_set_is_member (generic_set_t *set, const void *data)
 Fonction testant l'appartenance d'une valeur à un ensemble.
 
bool generic_set_is_subset (generic_set_t *set1, generic_set_t *set2)
 Fonction testant si un ensemble est sous-ensemble d'un autre.
 
bool generic_set_is_equal (generic_set_t *set1, generic_set_t *set2)
 Fonction testant si un ensemble est égale à un autre.
 
int generic_set_size (generic_set_t *set)
 Accesseur sur la taille d'un ensemble.
 

Description détaillée

Ensemble générique contenant des valeurs de type void*

Documentation des définitions de type

◆ generic_set_t

Type de données pour représenter un ensemble générique contenant des valeurs de type void*

Un ensemble est une liste chaînée gérée de manière adéquate: insertion en queue de liste avec un maintien de la propriété d'unicité des éléments dans l'ensemble.

Documentation des fonctions

◆ generic_set_destroy()

void generic_set_destroy ( generic_set_t * set)

Destruction d'un ensemble.

Utilise la fonction de destruction des listes chaînées pour parcourir la liste et détruire tous les éléments de l'ensemble.

Paramètres
setest un pointeur vers la structure de données des ensembles generic_set_t

◆ generic_set_difference()

int generic_set_difference ( generic_set_t * setd,
generic_set_t * set1,
generic_set_t * set2 )

Différence de deux ensembles.

Etant donné un pointeur vers un ensemble et un pointeur vers un autre ensemble, crée un troisième ensemble représentant la différence des deux ensembles, i.e., l'ensemble des éléments appartenant au premier ensemble et pas au second.

Paramètres
setdl'ensemble résultat de la différence de type generic_set_t
set1premier argument de l'opération d'union de type generic_set_t
set2second argument de l'opération d'union de type generic_set_t
Renvoie
un entier indiquant si tout s'est bien passé (0 pour OK, et -1 en cas de problème)

◆ generic_set_init()

void generic_set_init ( generic_set_t * set,
int(*)(const void *key1, const void *key2) compare,
void *(*)(const void *data) build,
void(*)(void *data) destroy )

Initialisation d'un nouvel ensemble générique contenant des valeurs de type void*

Utilise la fonction d'initalisation des listes chaînée générique pour mettre à zéro la taille et à NULL les pointeurs vers le premier et le dernier élément de la liste, i.e., de l'ensemble. Cette fonction nécessite une fonction de comparaison des éléments de l'ensemble, une fonction de construction d'un élément de l'ensemble et une fonction de destruction de l'ensemble.

Paramètres
setest un pointeur vers la structure de données des ensembles generic_set_t
comparefonction permettant la comparaison de deux éléments de l'ensemble
buildfonction permettant la construction d'une valeur de l'ensemble
destroyfonction permettant la destruction d'une valeur de l'ensemble

◆ generic_set_insert()

int generic_set_insert ( generic_set_t * set,
const void * data )

Ajouter un élément de type void* dans l'ensemble.

Etant donné un pointeur vers un ensemble (représenté par une liste chaînée) et une valeur de type void*, ajoute un nouvel élément à l'ensemble avec cette valeur en maintenant l'unicité de la valeur dans l'ensemble.

Paramètres
setest un pointeur vers la structure de données generic_set_t @pram data une valeur de type void* à ajouter à la file
Renvoie
un entier indiquant si tout s'est bien passé (0 pour OK, et -1 en cas de problème mémoire)

◆ generic_set_intersection()

int generic_set_intersection ( generic_set_t * seti,
generic_set_t * set1,
generic_set_t * set2 )

Intersection de deux ensembles.

Etant donné un pointeur vers un ensemble et un pointeur vers un autre ensemble, crée un troisième ensemble représentant l'intersection des deux ensembles

Paramètres
setil'ensemble résultat de l'intersection de type generic_set_t
set1premier argument de l'opération d'union de type generic_set_t
set2second argument de l'opération d'union de type generic_set_t
Renvoie
un entier indiquant si tout s'est bien passé (0 pour OK, et -1 en cas de problème)

◆ generic_set_is_equal()

bool generic_set_is_equal ( generic_set_t * set1,
generic_set_t * set2 )

Fonction testant si un ensemble est égale à un autre.

Etant donné un pointeur vers un ensemble et un pointeur vers un second ensemble indique si le premier ensemble est égale au second, i.e., tous les élements du premier ensemble sont dans le second et réciproquement

Paramètres
set1ensemble de type generic_set_t
set2ensemble de type generic_set_t
Renvoie
une valeur booléenne indiquant si set1 est égale à set2

◆ generic_set_is_member()

bool generic_set_is_member ( generic_set_t * set,
const void * data )

Fonction testant l'appartenance d'une valeur à un ensemble.

Etant donné un pointeur vers un ensemble et une valeur indique si cette valeur est dans l'ensembe ou non

Paramètres
setensemble de type generic_set_t
datavaleur de type void* que l'on souhaite tester la présence dans set
Renvoie
une valeur booléenne indiquant data appartient à l'ensemble set

◆ generic_set_is_subset()

bool generic_set_is_subset ( generic_set_t * set1,
generic_set_t * set2 )

Fonction testant si un ensemble est sous-ensemble d'un autre.

Etant donné un pointeur vers un ensemble et un pointeur vers un second ensemble indique si le premier ensemble est inclus dans le second, i.e., tous les élements du premier ensemble sont dans le second.

Paramètres
set1ensemble de type generic_set_t
set2ensemble de type generic_set_t
Renvoie
une valeur booléenne indiquant si set1 est inclus dans set2

◆ generic_set_remove()

int generic_set_remove ( generic_set_t * set,
void ** data )

Supprimer un élément de type void* dans l'ensemble.

Etant donné un pointeur vers un ensemble (représenté par une liste chaînée) et un pointeur vers une valeur de type void*, supprime l'élément de l'ensemble.

Paramètres
setest un pointeur vers la structure de données generic_set_t @pram data est pointeur vers une variable de type void* qui représente la valeur à supprimer
Renvoie
un entier indiquant si tout s'est bien passé (0 pour OK, et -1 en cas de problème mémoire)

◆ generic_set_size()

int generic_set_size ( generic_set_t * set)

Accesseur sur la taille d'un ensemble.

Etant donné un pointeur vers un ensemble (représentée par une liste chaînée), retourne la valeur du champ size

Paramètres
setest un pointeur vers la structure de données generic_set_t
Renvoie
un entier indiquant la taille (i.e., le nombre d'éléments) de l'ensemble

◆ generic_set_union()

int generic_set_union ( generic_set_t * setu,
generic_set_t * set1,
generic_set_t * set2 )

Union de deux ensembles.

Etant donné un pointeur vers un ensemble et un pointeur vers un autre ensemble, crée un troisième ensemble représentant l'union des deux ensembles

Paramètres
setul'ensemble résultat de l'union de type generic_set_t
set1premier argument de l'opération d'union de type generic_set_t
set2second argument de l'opération d'union de type generic_set_t
Renvoie
un entier indiquant si tout s'est bien passé (0 pour OK, et -1 en cas de problème)