libin103 1.4
Bibliothèque de structures de données en C
|
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. | |
structure de données tas contenant des valeurs de type void* . Le tas peut être configuré pour être tas-min ou tas-max.
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.
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.
heap | est un pointeur vers la structure de données de tas generic_heap_t |
position | indique l'indice de la case du tableau pour laquelle on veut changer la valeur |
data | pointeur vers la nouvelle valeur à ajouter dans le tas |
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
heap | est un pointeur vers la structure de données de tas generic_heap_t |
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.
heap | est un pointeur vers la structure de données de tas generic_heap_t |
data | valeur de type void* extraite du tas |
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.
list | est un pointeur vers la structure de données de tas generic_heap_t |
compare | fonction permettant la comparaison de deux éléments du tas |
build | fonction permettant la construction d'une valeur du tas |
destroy | fonction permettant la destruction d'une valeur du tas |
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
heap | est un pointeur vers la structure de données de tas generic_heap_t |
data | valeur de type void* à ajouter dans le tas |
int generic_heap_size | ( | generic_heap_t * | heap | ) |
Accesseur pour récupérer le nombre d'éléments dans le tas.
heap | est un pointeur vers la structure de données de tas generic_heap_t |