Aqui está a fonte da minha pergunta.
Dada uma árvore de auto balanceamento (AVL), codifique um método que retorne a mediana.
(Mediana: o valor numérico que separa a metade superior de uma amostra de dados da metade inferior. Exemplo: se a série for
2, 7, 4, 9, 1, 5, 8, 3, 6
então a mediana é 5.)
Posso oferecer a seguinte solução:
- Atravesse a árvore especificada e retorne o número de elementos.
- Atravesse
n / 2 + 1
(sen
for ímpar) a árvore novamente aplicando uma caminhada em árvore em ordem. O valor don / 2 + 1
elemento th é a mediana.
Mas posso fazer isso com uma árvore de pesquisa binária, não posso? Existe um algoritmo melhor para um AVL?