Cliquer ici pour télécharger zip


Constructeurs
rbt<T> (); Constructeur par défaut
rbt<T> (const rbt &); Constructeur de recopie



Surcharge d'opérateurs
rbt<T> & operator= (const rbt &); Assigne les valeurs d'un arbre à un autre
template<typename U> friend int operator== (node<U> &, node<U> &); Compare les valeurs de deux éléments



Liste des fonctions et description
void insert_corr (node<T> *); Correction de l'insertion
void delete_corr (node<T> *); Correction de la suppression
void color_checkup (node<T> *); Correction de la couleur
void translate (node<T> *, node<T> *); Translation de noeuds vers la racine
void print_rbt (node<T> *, std::string, bool); Affichage de l'arbre
Rotations de l'arbre binaire rouge et noir
void rotate_left(node<T> *); Rotation gauche
void rotate_right(node<T> *); Rotation droite
void recolor(node<T> *); Inverse la couleur
Parcours de l'arbre binaire rouge et noir
void reset_rbtlist (); Efface la liste de parcours
std::vector<T> & bfs (node<T> *); Parcours en largeur (Breadth First Search)
std::vector<T> & pref (node<T> *); Parcours préfixe (pré-ordre)
std::vector<T> & inf_lnr (node<T> *); Parcours infixe (symétrique, GND gauche-noeud-droit)
std::vector<T> & postf_lrn (node<T> *); Parcours postfixe (GDN gauche-droit-noeud)
Insertion, suppression et recherche de noeud
void insert_node (const T &); Insère un élément
void delete_node (node<T> *); Supprime un élément
node<T> * search (const node<T> *, const T &); Recherche d'un élément
void delete_rbt (); Vide l'arbre de son contenu
Retours de minimum, maximum et racine
node<T> * min (const node<T> *); Retourne l'élément minimum
node<T> * max (const node<T> *); Retourne l'élément maximum
node<T> * get_root (); Retourne la racine
Recherche du successeur et du prédécesseur
node<T> * succ_node (const node<T> *); Retourne le successeur
node<T> * pred_node (const node<T> *); Retourne le prédécesseur
Fonctions import/export
rbt<T> & makeRBT (const std::list<T> &); Construit un arbre à partir d'une liste
void rbt_to_file (std::string, bool=false); Enregistre l'arbre dans un fichier
rbt<T> & rbt_from_file (std::string); Charge l'arbre à partir d'un fichier
void display(); Affiche l'arbre à partir de la racine