Árbol de Fibonacci

Se llama árbol de Fibonacci a una variante de árbol binario con la propiedad que el orden de un nodo se calcula como la sucesión de Fibonacci.
El árbol de Fibonacci se define de la siguiente manera:

El árbol nulo (no contiene ningún nodo) es de orden 0.
El árbol que consta de un único nodo es de orden 1.
Para n > 1, el árbol de Fibonacci de orden n consta de un nodo raíz con el árbol de Fibonacci de orden n-1 como uno de sus hijos y el árbol de Fibonacci de orden n-2 como el hijo restante.
Árboles de Fibonacci de orden 1, 2, 3 y 4.

Dado que este tipo de árbol es un caso particular de un árbol AVL, ya que el factor de equilibrio de todo nodo es -1, un árbol de Fibonacci es balanceado con altura O(log n).

Implementación en pseudo-código del árbol de Fibonacci

TArbinDinamico<int> arbolFibonacci (int n){
TArbinDinamico<int> res;
if (n==0)
 res = TArbinDinamico(0, n, 0);
else if (n==1)
 res = TArbinDinamico(1, n, 0);
else
 res = TArbinDinamico(arbolFibonacci(n-1), n, arbolFibonacci(n-2));
return res;
}

Enlaces externos

Referencias

Este artículo ha sido escrito por Wikipedia. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.