Saltar al contenido principal

Estructura

Definimos el árbol binomial BkB_k como una topología, de la siguiente forma:

  • B0B_0 es un árbol formado por un único nodo.
  • Bk+1B_{k+1} es un árbol BkB_k al que se cuelga de la raíz otro hijo más, que resulta ser la raíz de otro árbol BkB_k.

--> imagen

Es fácil demostrar por inducción las siguientes propiedades:

  • La cantidad de nodos en BkB_k es 2k2^k.
  • La altura de BkB_k es k+1k+1 (entendiendo que un único nodo tiene altura 1).
  • El árbol BkB_k tiene (ki){k \choose i} nodos a profundidad ii (entendiendo que la raíz se encuentra a profundidad 0).
  • La raíz de BkB_k tiene kk hijos, B0,,Bk1B_0,\ldots,B_{k-1}.

Definimos un bosque binomial como un conjunto de árboles binomiales {Bk1,,Bkr}\{ B_{k_1}, \ldots, B_{k_r} \} donde ningún par de árboles tiene el mismo tamaño, es decir, kikjk_i \not= k_j para todo iji \not= j. Tenemos entonces las siguientes propiedades, también fáciles de ver:

  • Existe exactamente un bosque binomial de tamaño nn para cada n0n \ge 0: la única combinación posible es tomar los BkiB_{k_i} tal que los 1s en la descomposición binaria de nn están en las posiciones kik_i, partiendo de cero y de derecha a izquierda. Por ejemplo, el único bosque binomial de n=5=1012n=5=101_2 nodos es {B2,B0}\{ B_2, B_0 \}.

--> imagen

  • Un bosque binomial de nn nodos tiene a lo más log2n\lceil \log_2 n \rceil árboles binomiales.

Una cola binomial para un conjunto de nn elementos es un bosque binomial de nn nodos donde se almacena un elemento en cada nodo, cumpliendo que si xx está almacenado en el padre del nodo donde está almacenado yy, entonces xyx \le y.