Home Algoritmos y Estructuras de Datos (VJ1215)

Curso 2022/2023

Solución del ejercicio 13 del tema 3

int Conjunto::altura(Nodo * n) const {
   if (n == nullptr)
      return -1;
   return n->altura;
}

bool Conjunto::verificarEquilibrioAVL() const {
   return verificarEquilibrioAVL(raiz);
}

bool Conjunto::verificarEquilibrioAVL(Nodo * n) const {
   
   if (n == nullptr)
      return true;
   
   if (n->altura != 1 + max(altura(n->izquierdo), altura(n->derecho)))
      return false;

   if (abs(altura(n->izquierdo) - altura(n->derecho)) > 1)
      return false;
       
   return verificarEquilibrioAVL(n->izquierdo) && verificarEquilibrioAVL(n->derecho);
       
}