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_heap.h

structure de données tas contenant des valeurs de type void* . Le tas peut être configuré pour être tas-min ou tas-max. Plus de détails...

Aller au code source de ce fichier.

Structures de données

struct  generic_heap_t
 Type de données pour représenter le drapeau pour choisir un tas-min ou un tas-max avec des données de type void*. Le choix du type de tas est réalisé grâce à la fonction de comparaison. Plus de détails...
 

Définitions de type

typedef struct generic_heap_t generic_heap_t
 Type de données pour représenter le drapeau pour choisir un tas-min ou un tas-max avec des données de type void*. Le choix du type de tas est réalisé grâce à la fonction de comparaison.
 

Fonctions

void generic_heap_init (generic_heap_t *heap, int(*compare)(const void *key1, const void *key2), void *(*build)(const void *data), void(*destroy)(void *data))
 Initialisation d'un nouveau tas générique.
 
void generic_heap_destroy (generic_heap_t *heap)
 Destruction d'un tas.
 
int generic_heap_insert (generic_heap_t *heap, const void *data)
 Insertion d'un nouvel élément dans le tas.
 
int generic_heap_extract (generic_heap_t *heap, void **data)
 Extraction du plus petit (tas-min) ou du plus grand (tas-max) élément contenu dans le tas, i.e., à la racine.
 
int generic_heap_size (generic_heap_t *heap)
 Accesseur pour récupérer le nombre d'éléments dans le tas.
 
int generic_heap_change_key (generic_heap_t *heap, int position, void *data)
 Accesseur pour modifier une valeur du tas.
 

Description détaillée

structure de données tas contenant des valeurs de type void* . Le tas peut être configuré pour être tas-min ou tas-max.

Documentation des définitions de type

◆ generic_heap_t

typedef struct generic_heap_t generic_heap_t

Type de données pour représenter le drapeau pour choisir un tas-min ou un tas-max avec des données de type void*. Le choix du type de tas est réalisé grâce à la fonction de comparaison.

Documentation des fonctions

◆ generic_heap_change_key()

int generic_heap_change_key ( generic_heap_t * heap,
int position,
void * data )

Accesseur pour modifier une valeur du tas.

Mdofication en place d'une valeur contenue dans le tas à une position donnée. La propriété du tas est assurée. Cette fonction est utilisée dans l'algorithme de Dijkstra.

Paramètres
heapest un pointeur vers la structure de données de tas generic_heap_t
positionindique l'indice de la case du tableau pour laquelle on veut changer la valeur
datapointeur vers la nouvelle valeur à ajouter dans le tas
Renvoie
un entier indiquant si tout s'est bien passé (0 pour ok, -1 pour problème)

◆ generic_heap_destroy()

void generic_heap_destroy ( generic_heap_t * heap)

Destruction d'un tas.

Met à zéro la taille et désalloue le tableau représentant le tas

Paramètres
heapest un pointeur vers la structure de données de tas generic_heap_t

◆ generic_heap_extract()

int generic_heap_extract ( generic_heap_t * heap,
void ** data )

Extraction du plus petit (tas-min) ou du plus grand (tas-max) élément contenu dans le tas, i.e., à la racine.

Affecte au paramètre data, la valeur du premier élément du tableau. Echange la valeur du dernier élément avec la racine, puis réduit la taille du tableau et descent de la racine jusqu'à une feuille en faisant des permutations pour maintenir la propriété de tas-min ou tas-max.

Paramètres
heapest un pointeur vers la structure de données de tas generic_heap_t
datavaleur de type void* extraite du tas
Renvoie
un entier indiquant si tout s'est bien passé (0 pour ok, -1 pour problème)

◆ generic_heap_init()

void generic_heap_init ( generic_heap_t * heap,
int(*)(const void *key1, const void *key2) compare,
void *(*)(const void *data) build,
void(*)(void *data) destroy )

Initialisation d'un nouveau tas générique.

Met à zéro la taille et à NULL le pointeur sur le tableau. Cette fonction nécessite une fonction de comparaison des éléments du tas, une fonction de construction d'un élément du tas et une fonction de destruction des éléments du tas.

Paramètres
listest un pointeur vers la structure de données de tas generic_heap_t
comparefonction permettant la comparaison de deux éléments du tas
buildfonction permettant la construction d'une valeur du tas
destroyfonction permettant la destruction d'une valeur du tas

◆ generic_heap_insert()

int generic_heap_insert ( generic_heap_t * heap,
const void * data )

Insertion d'un nouvel élément dans le tas.

Augmente la taille du tableau pour ajouter un nouvel élément. Puis, à partir du nouvel élément remonte jusqu'à la racine en faisant des permutations pour maintenir la propriété de tas-min ou tas-max

Paramètres
heapest un pointeur vers la structure de données de tas generic_heap_t
datavaleur de type void* à ajouter dans le tas
Renvoie
un entier indiquant si tout s'est bien passé (0 pour ok, -1 pour problème)

◆ generic_heap_size()

int generic_heap_size ( generic_heap_t * heap)

Accesseur pour récupérer le nombre d'éléments dans le tas.

Paramètres
heapest un pointeur vers la structure de données de tas generic_heap_t
Renvoie
le nombre d'éléments dans le tas