TacOS  0.2
 Tout Structures de données Fichiers Fonctions Variables Définitions de type Énumérations Macros
heap.h
Aller à la documentation de ce fichier.
1 
29 #ifndef _HEAP_H_
30 #define _HEAP_H_
31 
32 #include <types.h>
33 
34 #define HEAP_MAX_SIZE 256
36 /*
37  * Structure de tas générique :
38  * Ce tas est compatible avec n'importe quel type de données pour peu qu'on lui
39  * donne une fonction de comparaison entre les elements.
40  * Ce tas manipule uniquement des pointeurs vers les elements qu'il contient
41  * Le tas n'est pas responsable de l'allocation et de la liberation de la mémoire
42  * Il s'agit uniquement d'une structure de tri
43  */
44 
45 // maxheap : la fonction doit retourner >0 si a>b, 0 si a=b, <0 si a<b
46 // minheap : la fonction doit retourner <0 si a>b, 0 si a=b, >0 si a<b
47 
51 typedef int (*cmp_func_type) (void*, void*);
52 
53 typedef int (*id_func_type) (int, void*);
54 
58 typedef struct {
60  void* heap;
62  size_t elements_size;
64 } heap_t;
65 
69 void initHeap(heap_t* h, cmp_func_type cmp, void* heap, size_t elements_size,int max_elements);
70 
79 void* getTop(heap_t *h);
80 
89 int addElement(heap_t* h, void* element);
90 
97 int removetop(heap_t* h);
98 
99 int delElement(heap_t* heap, int id, id_func_type func);
100 
101 #endif
size_t elements_size
Definition: heap.h:62
void * getTop(heap_t *h)
Definition: heap.c:49
void * heap
Definition: heap.h:60
int(* cmp_func_type)(void *, void *)
Definition: heap.h:51
cmp_func_type comparator
Definition: heap.h:59
int removetop(heap_t *h)
Definition: heap.c:103
Definition: heap.h:58
int addElement(heap_t *h, void *element)
Definition: heap.c:75
void initHeap(heap_t *h, cmp_func_type cmp, void *heap, size_t elements_size, int max_elements)
Definition: heap.c:34
int nb_elements
Definition: heap.h:61
int max_elements
Definition: heap.h:63