14#ifndef GENERIC_BITREE_H
15#define GENERIC_BITREE_H
46 int (*
compare)(
const void *key1,
const void *key2);
51 void* (*build)(
const void *data);
86 int (*compare)(
const void *key1,
const void *key2),
87 void* (*build)(
const void *data),
88 void (*destroy)(
void *data));
void generic_bitree_rem_right(generic_bitree_t *tree, generic_bitreenode_t *node)
Suppression d'un sous arbre en position fils droit dans un arbre binaire à une position donnée.
generic_bitreenode_t * generic_bitree_right(generic_bitreenode_t *node)
Accesseur pour récupérer le fils droit d'un noeud.
generic_bitreenode_t * generic_bitree_left(generic_bitreenode_t *node)
Accesseur pour récupérer le fils gauche d'un noeud.
int generic_bitree_merge(generic_bitree_t *merge, generic_bitree_t *left, generic_bitree_t *right, const void *data)
Fusion de deux arbres binaires.
void generic_bitree_init(generic_bitree_t *tree, int(*compare)(const void *key1, const void *key2), void *(*build)(const void *data), void(*destroy)(void *data))
Initialisation d'un nouvel arbre binaire générique.
struct generic_bitree_t generic_bitree_t
Type de données pour l'arbre binaire générique.
int generic_bitree_ins_left(generic_bitree_t *tree, generic_bitreenode_t *node, const void *data)
Insertion d'un noeud en position fils gauche dans un arbre binaire à une position donnée.
bool generic_bitree_is_eob(generic_bitreenode_t *node)
Test si un noeud est la fin du branche.
int generic_bitree_ins_right(generic_bitree_t *tree, generic_bitreenode_t *node, const void *data)
Insertion d'un noeud en position fils droit dans un arbre binaire à une position donnée.
int generic_bitree_size(generic_bitree_t *tree)
Accesseur pour la taille de l'arbre binaire.
void * generic_bitree_data(generic_bitreenode_t *node)
Accesseur pour récupérer la valeur stockée dans un noeud.
struct generic_bitreenode_t generic_bitreenode_t
Type de données pour un noeud de l'arbre binaire stockant des valeurs de type void*
void generic_bitree_rem_left(generic_bitree_t *tree, generic_bitreenode_t *node)
Suppression d'un sous arbre en position fils gauche dans un arbre binaire à une position donnée.
void generic_bitree_destroy(generic_bitree_t *tree)
Destruction d'un arbre binaire.
generic_bitreenode_t * generic_bitree_root(generic_bitree_t *tree)
Accesseur pour récupérer la racine.
bool generic_bitree_is_leaf(generic_bitreenode_t *node)
Test si un noeud est une feuille.
Type de données pour l'arbre binaire générique.
Definition generic_bitree.h:44
generic_bitreenode_t * root
Definition generic_bitree.h:57
void(* destroy)(void *data)
Definition generic_bitree.h:54
int size
Definition generic_bitree.h:45
int(* compare)(const void *key1, const void *key2)
Definition generic_bitree.h:46
Type de données pour un noeud de l'arbre binaire stockant des valeurs de type void*
Definition generic_bitree.h:29
struct generic_bitreenode_t * right
Definition generic_bitree.h:32
struct generic_bitreenode_t * left
Definition generic_bitree.h:31
void * data
Definition generic_bitree.h:30