Curso 2024/2025
int Conjunto::altura() const { return altura(raiz); } int Conjunto::altura(Nodo * n) const { if (n == nullptr) return -1; int alturaIzquierdo = altura(n->izquierdo), alturaDerecho = altura(n->derecho); if (alturaIzquierdo >= alturaDerecho) return 1 + alturaIzquierdo; else return 1 + alturaDerecho; }
En C++ podemos también utilizar max
:
int Conjunto::altura() const { return altura(raiz); } int Conjunto::altura(Nodo * n) const { if (n == nullptr) return -1; return 1 + max(altura(n->izquierdo), altura(n->derecho)); }
Este algoritmo tiene coste temporal O(n), siendo n la talla del conjunto.