Sei sulla pagina 1di 16

ARBOLES B Y ARBOLES B+

INTEGRANTES DEL EQUIPO:


Olga Verónica Sosa Luna
Iván Hammurabi Nava Luna
Alexis de Jesús Chávez Chávez
Nelther Raúl Daza Correa

MATERIA:
Algoritmos y estructuras de datos

PROFESOR: Acapulco, Gro. Sábado 12 de Abril del 2014


Adriana Hernández Camacho
Arboles B
Son estructuras de datos de árbol que se encuentran comúnmente
en las implementaciones de bases de datos y sistemas de
archivos.
• Son árboles balanceados de búsqueda
• Cada nodo puede poseer más de dos hijos.
• Mantienen los datos ordenados
• Las inserciones y eliminaciones se realizan en tiempo
logarítmico amortizado.
• Un árbol-B se mantiene
balanceado porque requiere
que todos los nodos hoja se
encuentren a la misma altura.

• Al maximizar el número de
nodos hijo de cada nodo
interno, la altura del árbol
decrece, las operaciones para
balancearlo se reducen, y
aumenta la eficiencia.
Arboles B+
• En ciencias de la computación,
un árbol B+ es un tipo
de estructura de datos de árbol,
representa una colección de datos
ordenados de manera que se
permite una inserción y borrado
eficientes de elementos. Es
un índice, multinivel, dinámico,
con un límite máximo y mínimo en
el número de claves por nodo. Un
árbol B+ es una variación de
un árbol B.
• Los árboles B+ se han convertido en la técnica mas
utilizada para la organización de archivos indizados. La
principal característica de estos arboles es que todas las
claves se encuentran en las hojas y por lo tanto cualquier
camino desde la raíz hasta alguna de las claves tienen la
misma longitud.

ARBOL B+ DE ORDEN 2
Inserción en árboles b+
Diferencias entre arboles b y b+
• Su diferencia con el proceso de inserción en árboles B consiste en
que cuando se inserta una nueva clave en una página llena, ésta se
divide también en otras dos y lo que subirá a la página antecesora
será una copia.
• La diferencia consiste en que las llaves se almacenan en los nodos
del último nivel del árbol y esos nodos se enlazan unos con otros
formando una lista ligada que puede ser ligada en forma sencilla o
doblemente ligada.
• Las llaves se repiten en los nodos intermedios y en el nodo raíz
para facilitar la búsqueda.
• Puede haber llaves en los nodos intermedios que no existan en los
nodos hoja porque alguna vez se insertaron y luego se borraron
pero se conservan para propósitos de localizar algunas llaves.
void Lectura2(nodo n,tArbol T) {
tEtiqueta etHijo,etHermano; tArbol Hijo,Hermano;
fprintf(stdout,"Introduce hijo_izqda de: "); Escribir(etiquetaAr(n,T));
Leer(&etHijo); if(comparar(etHijo,FINAL))
{ Hijo=creaRaiz(etHijo); insertar_hijo_izqda(n,Hijo,T);
Lectura2(hizqdaAr(n,T),T);
} fprintf(stdout,"Introduce her_drcha de: "); Escribir(etiquetaAr(n,T));
Leer(&etHermano); if(comparar(etHermano,FINAL))
{ Hermano=creaRaiz(etHermano);
insertar_hermano_drcha(n,Hermano,T); Lectura2(herdrchaAr(n,T),T); }
} tArbol Lectura()
{ tArbol T; tEtiqueta et; fprintf(stdout,"En caso de que no exista el
hijo_izqdo o el" "hermano_derecho introducir el valor: "); Escribir(FINAL);
/*FINAL actua de centinela*/ fprintf(stdout,"\nIntroduce la raiz del arbol:
"); Leer(&et); T=creaRaiz(et); Lectura2(raizAr(T),T); }
• Operaciones básicas arboles
Búsqueda: la búsqueda de una llave Y se realiza de manera análoga a
la búsqueda en un árbol binario de búsqueda. Se comienza buscando
por el nodo raíz y se compara la llave y con las llaves ki que se
encuentran en ese nodo. Si Y es igual a algún ki termina la búsqueda
satisfactoriamente.
Inserción: para realizar la inserción lo primero que debe hacerse es
un proceso de proceso de búsqueda da por resultado que el elemento
ya existe, no se realizara ninguna operación pues el árbol b no
permite elementos repetidos.
Eliminación: La elimanación siempre debe realizarse en una hoja si
después de realizarla búsqueda el nodo a borrar no estuviese en una
hoja de la misma manera que se procede en una árbol binario de
búsqueda el nodo a borrar se sustituiría por su antecesor o sucesor
que si se debe estar en una hoja.
Búsqueda
• La operación de búsqueda en árboles-B+ es similar a la
operación de búsqueda en árboles-B. El proceso es simple, sin
embargo puede suceder que al buscar una determinada clave la
misma se encuentre en un nodo raíz o interior, en dicho caso no
debe detenerse el proceso, sino que debe continuarse la
búsqueda con el nodo apuntado por la rama derecha de dicha
clave.

• Por ejemplo, al buscar la clave 55 en el árbol-B+ de la figura 6 se


advierte que esta se encuentra en el nodo raíz. En este caso,
debe continuarse el proceso de búsqueda en el nodo apuntado
por la rama derecha de dicha clave, o sea, si se encuentra la
clave Ki-1, debemos continuar la búsqueda por el apuntador Pi .
Inserción

• El proceso de inserción en árboles-B+ es relativamente simple,


similar al proceso de inserción en árboles-B. La dificultad se
presenta cuando desea insertarse una clave en un nodo que se
encuentra lleno. En este caso, el nodo afectado se divide en 2,
distribuyéndose las claves de la siguiente forma: " las p/2
primeras claves en el nodo de la izquierda y las p/2 + 1 restantes
claves en el nodo de la derecha". Una copia de la clave del medio
sube al nodo padre. En la figura 7 hay dos diagramas que
ilustran como funciona este caso.
Eliminación
• La operación de eliminación en árboles-B+ es mas simple que
en árboles-B. Esto ocurre porque las claves a eliminar siempre
se encuentran en las paginas hojas. En general deben
distinguirse los siguientes casos:
• Si al eliminar una clave, la cantidad de llaves queda mayor o
igual que p/2 entonces termina la operación. Las claves de los
nodos raíz o internos no se modifican por más que sean una
copia de la clave eliminada en las hojas. (Se presenta un ejemplo
de este caso en la figura 10).
• Si al eliminar una clave, la cantidad de llaves queda menor que
p/2 entonces debe realizarse una redistribución de claves, tanto
en el índice como en las paginas hojas.
Referencias:
• UNIVERSIDAD NACIONAL DE COLOMBIA
http://www.virtual.unal.edu.co/cursos/ingenieria/2001412/capitulos/ca
p8/85.html
• YAHOO
https://mx.answers.yahoo.com/question/index?qid=20111129190121AAp
8yZn
• TUTOR DE ESTRUCTURAS DE DATOS INTERACTIVO
http://decsai.ugr.es/~jfv/ed1/tedi/cdrom/docs/arb_B3.htm
• WIKIPEDIA
http://es.wikipedia.org/wiki/%C3%81rbol_B%2B

Potrebbero piacerti anche