Arboles-b

5
Definicion: Un árbol B de orden m es un árbol m-camino de búsqueda que está vacío o satisface las siguientes propiedades: - El nodo raíz tiene al menos una clave (o dos hijos) - Todos los nodos interiores, excepto la raíz tienen al menos m/2 (redondeo) hijos ó (m-1)/2 (parte entera) claves, y “m” hijos como máximo (m-1 claves) - Todas las hojas están en el mismo nivel Referencia: http://rua.ua.es/dspace/bitstream/10045/4411/24/ped- 06_07-tema3_6.pdf Definicion 2: Un árbol B es un árbol de búsqueda multicamino balanceado que surgió por la necesidad de hacer una búsqueda rápida, de cualquier tipo de contenido sin reorganizar el archivo y cumple con las siguientes reglas: - Cada nodo del árbol debe tener un mínimo de n valores en todo momento a excepción de la raíz. - El número máximo de valores que un nodo puede tener es 2 n - El árbol siempre esta balanceado - Todos los nodos hojas deben aparecer juntas en el último nivel Referencia: http://es.slideshare.net/CarlosAndresGonzalez/exposicion-arbol-b Los árboles B fueron propuestos en 1970 por Rudolf Bayer y Edward McCreight y constituyen una categoría muy importante de estructuras de datos, las cuales representan básicamente un método para almacenar y recuperar información de medios externos para operaciones de consulta y acceso secuencial. Existe una gran variedad de árboles B: los arboles B, B+ y B*; pero todas ellas están basadas en la misma idea, la utilización de árboles de búsqueda no binarios y con condición de balanceo. Estructura:

description

estructura de datos, arbol b

Transcript of Arboles-b

Definicion: Un rbol B de orden m es un rbol m-camino de bsqueda que est vaco o satisface las siguientes propiedades: El nodo raz tiene al menos una clave (o dos hijos) Todos los nodos interiores, excepto la raz tienen al menos m/2 (redondeo) hijos (m-1)/2 (parte entera) claves, y m hijos como mximo (m-1 claves) Todas las hojas estn en el mismo nivelReferencia: http://rua.ua.es/dspace/bitstream/10045/4411/24/ped-06_07-tema3_6.pdfDefinicion 2: Un rbol B es un rbol de bsqueda multicamino balanceado que surgi por la necesidad de hacer una bsqueda rpida, de cualquier tipo de contenido sin reorganizar el archivo y cumple con las siguientes reglas: Cada nodo del rbol debe tener un mnimo de n valores en todo momento a excepcin de la raz. El nmero mximo de valores que un nodo puede tener es 2n El rbol siempre esta balanceado Todos los nodos hojas deben aparecer juntas en el ltimo nivelReferencia: http://es.slideshare.net/CarlosAndresGonzalez/exposicion-arbol-b

Los rboles B fueron propuestos en 1970 por Rudolf Bayer y Edward McCreight y constituyen una categora muy importante de estructuras de datos, las cuales representan bsicamente un mtodo para almacenar y recuperar informacin de medios externos para operaciones de consulta y acceso secuencial. Existe una gran variedad de rboles B: los arboles B, B+ y B*; pero todas ellas estn basadas en la misma idea, la utilizacin de rboles de bsqueda no binarios y con condicin de balanceo.Estructura:Cada elemento de un nodo interno acta como un valor separador, que lo divide en subrboles. Por ejemplo, si un nodo interno tiene tres nodos hijo, debe tener dos valores separadores o elementos a1 y a2. Todos los valores del subrbol izquierdo deben ser menores a a1, todos los valores del subrbol del centro deben estar entre a1 y a2, y todos los valores del subrbol derecho deben ser mayores a a2. Los nodos internos de un rbol B, es decir los nodos que no son hoja, usualmente se representan como un conjunto ordenado de elementos y punteros a los hijos. Cada nodo interno contiene un mximo de U hijos y, con excepcin del nodo raz, un mnimo de L hijos. Para todos los nodos internos exceptuando la raz, el nmero de elementos es uno menos que el nmero de punteros a nodos. El nmero de elementos se encuentra entre L-1 y U-1. El nmero U debe ser 2L o 2L-1, es decir, cada nodo interno est por lo menos a medio llenar. Esta relacin entre U y L implica que dos nodos que estn a medio llenar pueden juntarse para formar un nodo legal, y un nodo lleno puede dividirse en dos nodos legales (si es que hay lugar para subir un elemento al nodo padre). Estas propiedades hacen posible que el rbol B se ajuste para preservar sus propiedades ante la insercin y eliminacin de elementos. Los nodos hoja tienen la misma restriccin sobre el nmero de elementos, pero no tienen hijos, y por tanto carecen de punteros. El nodo raz tiene lmite superior de nmero de hijos, pero no tiene lmite inferior. Por ejemplo, si hubiera menos de L-1 elementos en todo el rbol, la raz sera el nico nodo del rbol, y no tendra hijos. Un rbol B de altura n+1 puede contener U veces por elementos ms que un rbol B de profundidad n, pero el costo en la bsqueda, insercin y eliminacin crece con la altura del rbol. Como todo rbol balanceado, el crecimiento del costo es ms lento que el del nmero de elementos. Algunos rboles balanceados guardan valores slo en los nodos hoja, y por lo tanto sus nodos internos y nodos hoja son de diferente tipo. Los rboles B guardan valores en cada nodo, y pueden utilizar la misma estructura para todos los nodos. Sin embargo, como los nodos hoja no tienen hijos, una estructura especial para stos mejora el funcionamiento.Bsqueda:Se empieza en la raz, y se recorre el rbol hacia abajo, escogiendo el sub-nodo de acuerdo a la posicin relativa del valor buscado respecto a los valores de cada nodo.1. Situarse en el nodo raz.2. Comprobar si contiene la clave a buscar.1. Encontrada fin de procedimiento.2. No encontrada:1. Si es hoja no existe la clave.2. En otro caso el nodo actual es el hijo que corresponde:1. La clave a buscar k < k1: hijo izquierdo.2. La clave a buscar k > ki y k < ki+1 hijo isimo.3. Volver a paso 2(*).Insercion:Todas las inserciones se hacen en los nodos hoja.1. Realizando una bsqueda en el rbol, se halla el nodo hoja en el cual debera ubicarse el nuevo elemento.2. Si el nodo hoja tiene menos elementos que el mximo nmero de elementos legales, entonces hay lugar para uno ms. Inserte el nuevo elemento en el nodo, respetando el orden de los elementos.3. De otra forma, el nodo debe ser dividido en dos nodos. La divisin se realiza de la siguiente manera:1. Se escoge el valor medio entre los elementos del nodo y el nuevo elemento.2. Los valores menores que el valor medio se colocan en el nuevo nodo izquierdo, y los valores mayores que el valor medio se colocan en el nuevo nodo derecho; el valor medio acta como valor separador.3. El valor separador se debe colocar en el nodo padre, lo que puede provocar que el padre sea dividido en dos, y as sucesivamente.

Eliminacin:Es localizar y eliminar el elemento, y luego corregir, o hacer una nica pasada de arriba a abajo por el rbol, pero cada vez que se visita un nodo, reestructurar el rbol para que cuando se encuentre el elemento a ser borrado, pueda eliminarse sin necesidad de continuar reestructurando. Se pueden dar dos problemas al eliminar elementos: primero, el elemento puede ser un separador de un nodo interno. Segundo, puede suceder que al borrar el elemento, el nmero de elementos del nodo quede debajo de la cota mnima. Estos problemas se tratan a continuacin en orden. Eliminacin en un nodo hoja Busque el valor a eliminar. Si el valor se encuentra en un nodo hoja, se elimina directamente la clave, posiblemente dejndolo con muy pocos elementos; por lo que se requerirn cambios adicionales en el rbol. Eliminacin en un nodo internoCada elemento de un nodo interno acta como valor separador para dos sub rboles, y cuando ese elemento es eliminado, pueden suceder dos casos. En el primero, tanto el hijo izquierdo como el derecho tienen el nmero mnimo de elementos, L-1. Pueden entonces fundirse en un nico nodo con 2L-2 elementos. En el segundo caso, uno de los dos nodos hijos tiene un nmero de elementos mayor que el mnimo. Entonces se debe hallar un nuevo separador para estos dos sub rboles. Note que el mayor elemento del rbol izquierdo es el mayor elemento que es menor que el separador. De la misma forma, el menor elemento del subrbol derecho es el menor elemento que es mayor que el separador. Ambos elementos se encuentran en nodos hoja, y cualquiera de los dos puede ser el nuevo separador.

Si el valor se encuentra en un nodo interno, escoja un nuevo separador (puede ser el mayor elemento del subrbol izquierdo o el menor elemento del subrbol derecho), elimnelo del nodo hoja en que se encuentra, y reemplace el elemento a eliminar por el nuevo separador. Como se ha eliminado un elemento de un nodo hoja, se debe tratar este caso de manera equivalente.

Bibliografia:http://rua.ua.es/dspace/bitstream/10045/4411/24/ped-06_07-tema3_6.pdfhttp://es.slideshare.net/CarlosAndresGonzalez/exposicion-arbol-b(El libro que me pasaste)http://dis.um.es/~ginesgm/files/doc/aed/sec4.4.pdfhttps://sites.google.com/site/clasearbolesb/arboles-b