You are on page 1of 1

Arboles B y B+

Muchos programadores estn familiarizados al menos con la estructura de datos conocida como rbol binario. Los rboles binarios son una tcnica para imponer un orden lgico a una coleccin de datos mediante el uso de punteros, sin importar el orden fsico de los datos. En un rbol binario simple, cada nodo contiene algn dato, incluyendo un valor de clave que determina la posicin lgica del nodo en el rbol, as como punteros a los sub-rboles izquierdo y derecho. El primer nodo del rbol se conoce como raz. Los nodos que estn al final de las ramas del rbol se conocen como hojas. Para encontrar un dato en particular, se recorre el rbol binario desde el nodo raz. En cada nodo, la clave deseada se compara con la clave del nodo. Si no coinciden, una rama u otra del nodo se selecciona basndose en si la clave es menor o mayor que la clave del nodo. Este proceso contina hasta que se encuentra una coincidencia o se encuentra una rama vaca. Estos rboles binarios tan simples, aunque fciles de entender y de implementar, tienen algunas desventajas en la prctica. Si las claves no estn bien distribuidas o son aadidas de forma no aleatoria, el rbol puede resultar bastante asimtrico, dando lugar a amplias variaciones en el tiempo de recorrido. Para hacer el tiempo de acceso uniforme, muchos programadores prefieren un tipo particular de rbol balanceado conocido como rbol B. Para el propsito de esta discusin, el punto importante sobre los rboles B es que los datos estn almacenados en todos los nodos, se puede almacenar ms de un dato en un nodo y todas las ramas de un rbol son de idntica longitud. El comportamiento en el peor caso de un rbol B es predecible y mucho mejor que el de un rbol binario simple, pero el mantenimiento de un rbol B es ms complicado. Aadir un dato, cambiar un valor de clave o borrar un dato puede resultar en separacin o unin de un nodo, forzando una cascada de operaciones en el rbol para rebalancearlo. Un rbol B+ es una variante especializada de rbol B que tiene dos tipos de nodos: internos, que slo apuntan a otros nodos, y externos, que contienen los datos en si. La ventaja de los rboles B+ frente a los rboles B es que los nodos internos del rbol B+ pueden tener muchos ms valores clave de decisin que los nodos intermedios de un rbol B, de tal forma que el acceso global es ms rpido y la altura media del rbol es menor. Hay que tener en cuenta el hecho de que en un rbol B+ hay que recorrer toda una rama hasta las hojas para encontrar un dato, mientras que en los rboles B+ se puede encontrar el dato en los nodos intermedios, incluso en el raz.

You might also like