void insert(const Comparable & x, AvlNode * & t)
{
if(t == NULL)
t = new AvlNode(x, NULL, NULL);
else if(x < t->element)
{
insert(x, t->left);
if(height(t->left) - height(t->right) == 2)
if(x < t->left->element)
rotateWithRightChild(t);
else
doubleWithLeftChild(t);
}
else if(t->element < x)
{
insert(x, t->right);
if(height(t->right) - height(t->left) == 2)
if(x < t->left->element)
rotateWithRightChild(t);
else
doubleWithLeftChild(t);
}
else
; // Duplicate; do nothing
t->height = max(height(t->left), height(t->right)) + 1;
}
int height(AvlNode *t) const { return t == NULL ? -1 : t->height; }
Comment peuvent-ils caler la hauteur de l'arbre?AVL Tree Code - Je ne comprends pas
hauteur1 0 -1
(-1) - hauteur (null) = 1 ?? Pas d'équilibre?
Qu'est-ce que vous ne comprenez pas exactement? Avez-vous de la difficulté à comprendre la syntaxe C++ ou s'agit-il seulement de l'algorithme impliqué? – sellibitze
Je ne comprends vraiment pas la façon dont il calcule la hauteur de l'arbre? algorithme que je veux dire. Merci :) – nXqd