Operaciones
Insert
Para insertar un elemento en una cola , simplemente se crea un nuevo árbol conteniendo y se agrega este a la lista de árboles de . Además se compara con el mínimo elemento, para actualizar el mínimo de ser necesario. El tiempo total es .
FindMin
Como siempre conocemos el mínimo elemento, el tiempo es .
Heapify
Se realiza mediante inserciones, en tiempo .
Merge
Simplemente se unen los dos conjuntos concatenando las dos listas, en tiempo . Además se comparan los dos mínimos, para retener el mínimo global.
ExtractMin
Ésta es la operación más compleja. Aquí recorremos la lista y nos aseguramos de convertirla en un bosque binomial, mediante sumar árboles iguales iterativamente.
Primero eliminamos la raíz del árbol que contiene el mínimo actual (la cual conocemos) y agregamos los hijos a la lista de árboles de .
Luego, convertimos el bosque de árboles binomiales en un bosque binomial. Para ello, creamos un pequeño arreglo de punteros, donde apunta a un único árbol si es que tenemos alguno. Inicialmente todos los punteros son nulos. Ahora recorremos la lista. Para cada árbol que encontramos, si es nulo, asignamos . Si no, unimos con el árbol (colgando la raíz mayor de la menor) en un único árbol , dejamos en nulo y continuamos el proceso con este nuevo árbol .
Al final de esta operación tenemos un bosque binomial en , y creamos una lista enlazada con ellos. Ésta es la nueva cola de Fibonacci (en este momento es una cola binomial válida). Sobre las raíces resultantes calculamos el nuevo mínimo y lo recordamos.
--> imagen