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

Structure de données d'arbre binaire contenant des valeurs de type double . Plus de détails...

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

Aller au code source de ce fichier.

Structures de données

struct  real_bitreenode_t
 Type de données pour un noeud de l'arbre binaire stockant des valeurs de type double Plus de détails...
 
struct  real_bitree_t
 Type de données pour l'arbre binaire. Plus de détails...
 

Définitions de type

typedef struct real_bitreenode_t real_bitreenode_t
 Type de données pour un noeud de l'arbre binaire stockant des valeurs de type double
 
typedef struct real_bitree_t real_bitree_t
 Type de données pour l'arbre binaire.
 

Fonctions

void real_bitree_init (real_bitree_t *tree)
 Initialisation d'un nouvel arbre binaire.
 
void real_bitree_destroy (real_bitree_t *tree)
 Destruction d'un arbre binaire.
 
int real_bitree_ins_left (real_bitree_t *tree, real_bitreenode_t *node, double data)
 Insertion d'un noeud en position fils gauche dans un arbre binaire à une position donnée.
 
int real_bitree_ins_right (real_bitree_t *tree, real_bitreenode_t *node, double data)
 Insertion d'un noeud en position fils droit dans un arbre binaire à une position donnée.
 
void real_bitree_rem_left (real_bitree_t *tree, real_bitreenode_t *node)
 Suppression d'un sous arbre en position fils gauche dans un arbre binaire à une position donnée.
 
void real_bitree_rem_right (real_bitree_t *tree, real_bitreenode_t *node)
 Suppression d'un sous arbre en position fils droit dans un arbre binaire à une position donnée.
 
int real_bitree_merge (real_bitree_t *merge, real_bitree_t *left, real_bitree_t *right, double data)
 Fusion de deux arbres binaires.
 
int real_bitree_size (real_bitree_t *tree)
 Accesseur pour la taille de l'arbre binaire.
 
real_bitreenode_treal_bitree_root (real_bitree_t *tree)
 Accesseur pour récupérer la racine.
 
bool real_bitree_is_eob (real_bitreenode_t *node)
 Test si un noeud est la fin du branche.
 
bool real_bitree_is_leaf (real_bitreenode_t *node)
 Test si un noeud est une feuille.
 
double real_bitree_data (real_bitreenode_t *node)
 Accesseur pour récupérer la valeur stockée dans un noeud.
 
real_bitreenode_treal_bitree_left (real_bitreenode_t *node)
 Accesseur pour récupérer le fils gauche d'un noeud.
 
real_bitreenode_treal_bitree_right (real_bitreenode_t *node)
 Accesseur pour récupérer le fils droit d'un noeud.
 

Description détaillée

Structure de données d'arbre binaire contenant des valeurs de type double .

Documentation des définitions de type

◆ real_bitree_t

typedef struct real_bitree_t real_bitree_t

Type de données pour l'arbre binaire.

◆ real_bitreenode_t

typedef struct real_bitreenode_t real_bitreenode_t

Type de données pour un noeud de l'arbre binaire stockant des valeurs de type double

Documentation des fonctions

◆ real_bitree_data()

double real_bitree_data ( real_bitreenode_t * node)

Accesseur pour récupérer la valeur stockée dans un noeud.

Paramètres
nodeest un pointeur vers la structure de données real_bitreenode_t représentant le noeud pour lequel on veut la valeur
Renvoie
la valeur de type double stockée dans node

◆ real_bitree_destroy()

void real_bitree_destroy ( real_bitree_t * tree)

Destruction d'un arbre binaire.

Met à zéro la taille et à NULL le pointeur vers la racine après avoir parcourus l'arbre pour détruire tous les noeuds en utilisant les fonctions real_bitree_ins_left et real_bitree_ins_right.

Paramètres
treeest un pointeur vers la structure de données real_bitree_t contenant la racine de l'arbre

◆ real_bitree_init()

void real_bitree_init ( real_bitree_t * tree)

Initialisation d'un nouvel arbre binaire.

Met à zéro la taille et à NULL le pointeur vers la racine

Paramètres
treeest un pointeur vers la structure de données real_bitree_t

◆ real_bitree_ins_left()

int real_bitree_ins_left ( real_bitree_t * tree,
real_bitreenode_t * node,
double data )

Insertion d'un noeud en position fils gauche dans un arbre binaire à une position donnée.

  1. On trouve la bonne position où insérer
    • si node == NULL alors on ajoute un fils gauche à la racine si emplacement vide autrement erreur
    • si node != NULL alors on ajoute un fils gauche au noeud node si emplacement vide autrement erreur
  2. On alloue un nouveau noeud et on y stocke la valeur de data
Paramètres
treeest un pointeur vers la structure de données real_bitree_t contenant la racine de l'arbre
nodeest un pointeur vers la structure de données real_bitreenode_t représentant le noeud auquel ajouté un fils gauche
datala valeur à stocker dans le fils gauche créé
Renvoie
une valeur entière indiquant si tout s'est bien passé (0 pour ok, -1 pour erreur)

◆ real_bitree_ins_right()

int real_bitree_ins_right ( real_bitree_t * tree,
real_bitreenode_t * node,
double data )

Insertion d'un noeud en position fils droit dans un arbre binaire à une position donnée.

  1. On trouve la bonne position où insérer
    • si node == NULL alors on ajoute un fils droit à la racine si emplacement vide autrement erreur
    • si node != NULL alors on ajoute un fils droit au noeud node si emplacement vide autrement erreur
  2. On alloue un nouveau noeud et on y stocke la valeur de data
Paramètres
treeest un pointeur vers la structure de données real_bitree_t contenant la racine de l'arbre
nodeest un pointeur vers la structure de données real_bitreenode_t représentant le noeud auquel ajouté un fils droit
datala valeur à stocker dans le fils droit créé
Renvoie
une valeur entière indiquant si tout s'est bien passé (0 pour ok, -1 pour erreur)

◆ real_bitree_is_eob()

bool real_bitree_is_eob ( real_bitreenode_t * node)

Test si un noeud est la fin du branche.

Vérifie si le noeud est NULL ou pas

Paramètres
nodeest un pointeur vers la structure de données real_bitreenode_t représentant le noeud à tester
Renvoie
la valeur booléenne indiquant si node est NULL ou pas

◆ real_bitree_is_leaf()

bool real_bitree_is_leaf ( real_bitreenode_t * node)

Test si un noeud est une feuille.

Vérifie que le fils gauche et le fils droit d'un noeud sont NULL

Paramètres
nodeest un pointeur vers la structure de données real_bitreenode_t représentant le noeud à tester
Renvoie
la valeur booléenne indiquant si node est une feuille ou pas

◆ real_bitree_left()

real_bitreenode_t * real_bitree_left ( real_bitreenode_t * node)

Accesseur pour récupérer le fils gauche d'un noeud.

Donne le pointeur vers le noeud fils gauche

Paramètres
nodeest un pointeur vers la structure de données real_bitreenode_t représentant le noeud pour lequel on veut le fils gauche
Renvoie
le pointeur vers la structure real_bitreenode_t associée au fils gauche

◆ real_bitree_merge()

int real_bitree_merge ( real_bitree_t * merge,
real_bitree_t * left,
real_bitree_t * right,
double data )

Fusion de deux arbres binaires.

  1. Initialisation du nouvel arbre merge
  2. Insertion de la donnée data dans ce nouvel arbre (à la racine)
  3. Ajout d'un fils gauche avec left et d'un fils droit right
  4. Mise à jour de la taille du nouvel arbre
Paramètres
mergeest un pointeur vers la structure de données real_bitree_t contenant l'arbre issu de la fusion de left et right
leftest un pointeur vers la structure de données real_bitree_t représentant un arbre binaire qui sera en position sous arbre gauche dans la fusion
rightest un pointeur vers la structure de données real_bitree_t représentant un arbre binaire qui sera en position sous arbre droit dans la fusion
datavaleur de type double qui sera stockée à la racine de l'arbre binaire issue de la fusion
Renvoie
une valeur entière indiquant si tout s'est bien passé (0 pour ok, -1 pour erreur)

◆ real_bitree_rem_left()

void real_bitree_rem_left ( real_bitree_t * tree,
real_bitreenode_t * node )

Suppression d'un sous arbre en position fils gauche dans un arbre binaire à une position donnée.

  1. On trouve la bonne position où insérer
    • si node == NULL alors on supprime le sous arbre gauche de la racine
    • si node != NULL alors on supprime le sous arbre gauche du noeud node
  2. Récursion pour supprimer tous les noeuds jusqu'aux feuilles en utilisant les fonctions real_bitree_rem_left et real_bitree_rem_right
Paramètres
treeest un pointeur vers la structure de données real_bitree_t contenant la racine de l'arbre
nodeest un pointeur vers la structure de données real_bitreenode_t représentant le noeud auquel il faut supprimer le sous-arbre gauche

◆ real_bitree_rem_right()

void real_bitree_rem_right ( real_bitree_t * tree,
real_bitreenode_t * node )

Suppression d'un sous arbre en position fils droit dans un arbre binaire à une position donnée.

  1. On trouve la bonne position où insérer
    • si node == NULL alors on supprime le sous arbre droit de la racine
    • si node != NULL alors on supprime le sous arbre droit du noeud node
  2. Récursion pour supprimer tous les noeuds jusqu'aux feuilles en utilisant les fonctions real_bitree_rem_left et real_bitree_rem_right
Paramètres
treeest un pointeur vers la structure de données real_bitree_t contenant la racine de l'arbre
nodeest un pointeur vers la structure de données real_bitreenode_t représentant le noeud auquel il faut supprimer le sous-arbre droit

◆ real_bitree_right()

real_bitreenode_t * real_bitree_right ( real_bitreenode_t * node)

Accesseur pour récupérer le fils droit d'un noeud.

Donne le pointeur vers le noeud fils droit

Paramètres
nodeest un pointeur vers la structure de données real_bitreenode_t représentant le noeud pour lequel on veut le fils droit
Renvoie
le pointeur vers la structure real_bitreenode_t associée au fils droit

◆ real_bitree_root()

real_bitreenode_t * real_bitree_root ( real_bitree_t * tree)

Accesseur pour récupérer la racine.

Donne le pointeur vers le noeud racine

Paramètres
treeest un pointeur vers la structure de données real_bitree_t contenant la racine de l'arbre binaire
Renvoie
le pointeur vers la structure real_bitreenode_t associée à la racine

◆ real_bitree_size()

int real_bitree_size ( real_bitree_t * tree)

Accesseur pour la taille de l'arbre binaire.

Donne le nombre de noeud dans l'arbre binaire

Paramètres
treeest un pointeur vers la structure de données real_bitree_t contenant la racine de l'arbre binaire
Renvoie
une valeur entière indiquant la taille