Aquí está la fuente de mi pregunta.
Dado un árbol de auto-equilibrio (AVL), codifique un método que devuelva la mediana.
(Mediana: el valor numérico que separa la mitad superior de una muestra de datos de la mitad inferior. Ejemplo: si la serie es
2, 7, 4, 9, 1, 5, 8, 3, 6
entonces la mediana es 5.)
Puedo ofrecer la siguiente solución:
- Atraviesa el árbol dado, devuelve el número de elementos.
- Atraviese
n / 2 + 1
(sin
es extraño) el árbol nuevamente aplicando un recorrido de árbol en orden. El valor deln / 2 + 1
elemento th es la mediana.
Pero puedo hacerlo con un árbol de búsqueda binario, ¿no? ¿Hay un mejor algoritmo para un AVL?