- Á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 hijo izquierdo y el árbol de Fibonacci de orden n-2 como hijo derecho.
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 C++ 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
- http://www.cse.ohio-state.edu/~weide/sce/now/321/homeworks/hw02.html
- http://www.fdi.ucm.es/profesor/milanjm/edi0203/FI611_03_Jun_2_parcial_.pdf
- http://www.conclase.net/c/edd/index.php?cap=006b
- http://articulos.conclase.net/arboles-b/index.html
Referencias
Categoría:- Árboles (estructura)
Wikimedia foundation. 2010.