IBD Clase 6.

Slides:



Advertisements
Presentaciones similares
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities scuola.
Advertisements

SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
ÍNDICES.
el 1, el 4 y el 9 tres cuadrados perfectos autosuficientes
IBD Clase 8.
IBD Curso 2007 Clase 2.
IBD Plan 90 y 2003 Clase 10.
5. Estructuras no lineales estáticas y dinámicas
ESTRUCTURA DE DATOS Unidad 04 TDA no lineales - Árboles.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS ( Resumen PYMES ) Noviembre de 2004.
AYUDA A LA FUNCIÓN DOCENTE Internet
TEMA 2 MÚLTIPLOS Y DIVISORES
02- Plan Organización Docente v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
02- PLAN DOCENTE Febrero 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
Programación entera En muchos problemas reales las variables sólo pueden tomar valores enteros Ejemplos: decisiones sobre inversiones, compras, arranques,
Respuestas Buscando a Nemo.
ABECEDARIO FIGURAS GEOMÉTRICAS NÚMERO
Árboles de decisión Tema 9 Parte teórica Minería de datos
IBD Clase 7.
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS DE BUSQUEDA.
CLASE 3 SOFTWARE DEL MICROPROCESADOR
Montículos Daniel González Pérez Cristina Sánchez Aragón
Phone2Wave-Server Manual de Operación.
Parte 3. Descripción del código de una función 1.
Sistemas de Ecuaciones
Tema 1.- Aritmética. 1.-Usar el algoritmo de Euclides para calcular el máximo común divisor de a y b y expresarlo en función de a y b para: a) a= 56,
Ordenamiento Interno y Búsqueda Binaria
Programación y Estructuras de Datos
EL OSO APRENDIZ Y SUS AMIGOS
Operaciones sobre un árbol
Estructura de Datos en memoria secundaria
Ecuaciones Cuadráticas
Curso de Programación 1 Plan 97
INFORMATICA I Arreglos 1 CLASE 17.
Árboles binarios. Algoritmos básicos
Tema 4 Árboles. Conceptos Generales..
ESTRUCTURAS DE DATOS AVANZADAS
Expresiones Algebraicas
¿Qué es un conjunto? Un conjunto es una colección de objetos considerada como un todo. Los objetos de un conjunto son llamados elementos o miembros del.
IBD Plan 2003 Clase 4. UNLP - Facultad de InformáticaIBD - CLASE 4 2 Archivos - Búsqueda Búsqueda de información (costo) # de comparaciones (operaciones.
Algoritmos Aleatorizados
Árboles balanceados AVL

Integrantes: Esteban Jiménez Guesseppe Lozada Mario Rodriguez Gustavo Tenorio Fabio.
Slide 7-1 Copyright © 2003 Pearson Education, Inc. Figure: Estructuras de datos.
Teoría de Sistemas Operativos
Arboles (Trees) Arboles Arboles binarios Recorridos de árboles
Almacenamiento y Recuperacion de Información TAD_ABB Ana Lilia Laureano Cruces Universidad Autónoma Metroplotiana.
Estructuras de control
Algoritmos de ordenación
Ana Lilia Laureano Cruces UAM-A
Estructura de Datos Lineales
Material de apoyo Unidad 4 Estructura de datos
Estructuras de Datos MC Beatriz Beltrán Martínez.
Árboles, montículos y grafos Cola de prioridades, montículos
Heaps Mauro Maldonado Abril/2005. Introducción La estructura heap es frecuentemente usada para implementar colas de prioridad. En este tipo de colas,
Estructura de Datos y Algoritmos
ARBOLES ESTRUCTURAS DE DATOS.
Árboles B M.C. José Andrés Vázquez Flores Estructuras de Datos / Primavera 2014.
Almacenamiento y Recuperacion de Información- Arbol AVL
Árboles Recomendado: 1. Nivelación Funciones
Árboles Binarios Estructuras de Datos.
Teoría de Sistemas Operativos Administración de Archivos.
Estructura de Datos M.C. J. Andrés V. F. FCC/BUAP
Arboles B (búsqueda externa)
ARBOLES GENERALIZADOS
A YUDANTÍA 5: A RBOLES Carlos Pulgar R. Mail: Página Ayudantía:
MIA - Grupo 5 Unidad 2.
Árboles Equilibrados Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2015.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Transcripción de la presentación:

IBD Clase 6

Árboles Índices: problemas Indices grandes -> mem. secundaria Acceso a mem. secundaria -> lento Búsqueda binaria -> demasiados desplazamientos En un índice de 1000 items se requieren 9.5 (aprox.) desplazamientos en promedio Costo de mantener índice ordenado Es necesario un método donde las reorganizaciones sean locales y no masivas IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Arbol: Estructura de datos que permiten localizar en forma más rápida información de un archivo. (usando esta estructura para los indices) Tipos de árboles Binarios AVL Multicamino Balanceado (B, B*, B+) IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Estructura JERÁRQUICA no lineal Relaciones padre-hijo entre nodos Ejemplos: sistema de ficheros, estructura de un libro, diagrama de clases JAVA, diagrama organizativo... MiEmpresa Ventas I+D Producción Portátiles Sobremesa ES Internacional Europa Asia América IBD - CLASE 6 UNLP - Facultad de Informática

Arboles hay un único nodo raíz Un árbol se caracteriza por estar formado por una serie de nodos conectados por una serie de aristas que verifican que: hay un único nodo raíz cada nodo, excepto la raíz, tiene un único padre hay un único camino (desde la raíz hasta cada nodo) IBD - CLASE 6 UNLP - Facultad de Informática

Arboles la estructura vacía, o Un árbol de tipo base T es: la estructura vacía, o un nodo de tipo T con un número finito de estructuras árbol de tipo base T disjuntas llamadas subárboles <arbol> ::= <<nulo>> | <nodo> <nodo> ::= <info> {<arbol>} Puede estar ordenado o no IBD - CLASE 6 UNLP - Facultad de Informática

Arboles: terminología básica Raíz: único nodo sin padre Nodo interno: tiene al menos un hijo Nodo hoja (externo): no tiene hijos Descendiente directo: hijo Descendientes: hijo, nieto... Subárbol: árbol formado por un nodo y sus descendientes subárbol B C D E F G H I J K IBD - CLASE 6 UNLP - Facultad de Informática

Arboles: terminología básica Grado de un nodo: número de descendientes directos Grado del árbol: mayor grado de sus nodos Árbol binario: árbol de grado 2 Cada nodo tiene a lo sumo dos descendientes directos Árbol multicamino: Cada nodo puede tener n descendientes directos Lista= árbol degenerado de grado 1 IBD - CLASE 6 UNLP - Facultad de Informática

Arboles: terminología básica Profundidad de un nodo: número de predecesores Altura del árbol: profundidad máxima de cualquier nodo A profundidad(A)=0 profundidad(H)=2 altura=3 B C D E F G H I J K IBD - CLASE 6 UNLP - Facultad de Informática

Arboles: terminología básica Camino: existe un camino del nodo X al nodo Y, si existe una sucesión de nodos que permitan llegar desde X a Y. camino(A,K)={A,B,F,K} camino(C,K)={} A B C D E F G H I J K IBD - CLASE 6 UNLP - Facultad de Informática

Arboles: árbol binario Es un árbol de grado 2 Cada nodo tiene de 0 a 2 descendientes directos: el hijo izquierdo y el derecho <arbol> ::= <<nulo>> | <nodo> <nodo> ::= <info> <izq> <der> <izq> ::= <arbol> <der> ::= <arbol> A B C D E F G H I IBD - CLASE 6 UNLP - Facultad de Informática

Arboles: árbol binario Aplicación: expresiones aritméticas, árboles de decisión, búsqueda (ABB) En algunos casos se exige que el árbol sea completo = todo nodo interno tiene dos descendientes. Árbol binario completo Árbol binario no completo IBD - CLASE 6 UNLP - Facultad de Informática

Arboles: árbol binario Ejemplo: expresiones aritméticas nodo interno: operadores nodos hoja: operandos 2*(a-1)+3*b +   2 - 3 b a 1 IBD - CLASE 6 UNLP - Facultad de Informática

Arboles: árbol binario Ejemplo de aplicación: árboles de decisión nodo interno: preguntas con respuesta si/no nodos hoja: decisiones ¿Dónde cenamos? ¿Cómida rápida? Sí No ¿Con café? ¿Cara? Sí No Sí No Trattoría McDonalds Rodizio Pizza hut IBD - CLASE 6 UNLP - Facultad de Informática

Arboles: árbol binario Ejemplo: dada una lista de claves ordenada AX CL DE FB FT HN JD KF NR PA RF SD TK WA YJ KF FB SD PA WS CL HN DE AX FT JD NR RF TK YS IBD - CLASE 6 UNLP - Facultad de Informática

Arboles: árbol binario Cada nodo es un registro de long. fija Cómo se almacena ? Archivo con reg. de long fija La informacion en el archivo no está físicamente ordenada Ver ejemplo del archivo para el árbol del slide anterior Costo de espacio (muchos campos vacios) IBD - CLASE 6 UNLP - Facultad de Informática

Arboles: árbol binario Insertar las claves LV NP MB KF FB SD WS PA CL HN FT AX DE JD NR RF TK YS LV NP MB IBD - CLASE 6 UNLP - Facultad de Informática

Arboles: árbol binario Inserción Sólo ligar al nodo apropiado (no reorganizar) Para acceder al nodo MB son necesarios 7 accesos Para árboles con cientos de claves, se requieren más de 30 accesos. IBD - CLASE 6 UNLP - Facultad de Informática

Arboles: árbol binario Arbol balanceado: la altura de la trayectoria más corta hacia una hoja no difiere de la altura de la trayectoria mas grande Inconveniente: los árboles binarios (como en el ejemplo) se desbalancean fácilmente -> búsquedas más costosas (mayor cantidad de desplazamientos) Solución: reorganizar los nodos del árbol a medida que se reciben las claves. Resultado: Arboles AVL IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Tipos de árboles Binarios AVL Multicamino Balanceado (B, B*, B+) IBD - CLASE 6 UNLP - Facultad de Informática

Arboles AVL Arbol binario balanceado en altura. La diferencia máx. de altura entre las alturas de cualquiera de 2 subárboles que comparten raiz común es 1 Se llama árbol balanceado en altura ó árbol BA(1) Las inserciones y eliminaciones se efectúan con un mínimo de accesos Miembro de una clase más gral. de árboles balanceados en altura BA(k): máx. diferencia de altura es k IBD - CLASE 6 UNLP - Facultad de Informática

Arboles AVL Garantizan un cierto nivel mínimo de desempeño de búsqueda. La estructura debe ser respetada -> al insertar nuevos nodos, se realizan rotaciones restringidas a un área local del árbol Como son árboles binarios, con muchos niveles son muy profundos. IBD - CLASE 6 UNLP - Facultad de Informática

Arboles AVL En un árbol binario completamente balanceado, el peor caso de búsqueda para encontrar 1 clave (considerando N claves posibles) busca en log2(N+1) niveles del árbol En un árbol AVL el peor caso de búsqueda podría ser buscar en 1.44 log2(N+2) niveles del árbol IBD - CLASE 6 UNLP - Facultad de Informática

Arboles AVL Para 1.000.000 claves, un árbol completamente balanceado requiere desplazamiento en 20 niveles para buscar alguna de las claves. En un árbol AVL el Nº máx. de niveles a buscar es 28 Esto es bueno para almacenamiento en memoria principal En almacenamiento secundario es deseable a lo sumo 5 o 6 desplazamientos, 20 o 28 es inaceptable. IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Volviendo a los 2 problemas iniciales: La búsqueda binaria requiere demasiados desplazamientos Mantener un índice en orden es costoso Los árboles balanceados en altura proporcionan solución aceptable al segundo problema. IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Binarios paginados Desplazarse en mem. secundaria tiene un costo de tiempo relativamente alto Aunque, una vez en posición, leer o escribir un conjunto de bytes continuos es rápido La combinación de : desplazamiento lento + transferencia rápida -> conduce a la idea de paginación IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Binarios paginados Al dividir un arbol binario en págs y después almacenar c/pág en bloques de localidad contiguas en disco  se puede reducir el Nº de desplazamientos para cualquier búsqueda. Paginación -> solución potencial al problema de búsqueda. IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Binarios paginados Estrategia: Dividir el árbol binario en páginas Almacenar cada página en un bloque de direcciones contiguas en disco Ver ejemplo (posibilidad de acceder a 63 nodos con sólo 2 accesos a disco) Dividir el árbol en páginas permite búsquedas más rápidas en almacenamiento secundario. IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Binarios paginados Ejemplo: Suposición de árbol completamente balanceado Páginas de 8 Kb -> 511 claves por pág. Para buscar cualquiera de 134.217.727 claves se requieren sólo 3 desplazamientos. IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Binarios paginados Ejemplo: Pero caso de búsqueda en un árbol binario balanceado: log2 (N+1), N: cantidad de claves Para las versiones paginadas del mismo árbol: logk+1(N+1), N: cantidad de claves, k: cant. claves por pág. Comparación log2 (134.217.727 +1) = 27 desplazamientos log511+1(134.217.727 +1)= 3 desplazamientos IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Binarios paginados Uso de páginas grandes: Cada acceso a una página requiere transmitir muchos datos, la mayoría no usados. Hay tiempo de transmisión adicional, pero se ahorran muchos desplazamientos que consumen más tiempo que las retransmisiones. Problemas: Cómo construirlo ? Cómo elegir la raiz ? Cómo mantenerlo balanceado ? La idea de agrupar claves en páginas es MB, pero no se ha encontrado forma de agrupar las claves correctamente IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Tipos de árboles Binarios AVL Multicamino Balanceado (B, B*, B+) IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Multicamino Árboles n-arios o Multicamino: Árbol en el que cualquier nodo puede tener cualquier número de hijos  Árboles con grado  2 IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Multicamino Implementación 1 Hijos como arreglo de referencias Desaprovecha memoria si el número de hijos es muy variable No puede usarse si el número de hijos es ilimitado ... A ... B ... C ... D ... E ... F ... G ... H ... I ... J IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Multicamino Implementación 2 Hijos como una lista enlazada A B siguiente C hijos F hijos siguiente siguiente hijos G hijos D siguiente hijos hijos E H siguiente I hijos siguiente J hijos IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Tipos de árboles Binarios AVL Multicamino Balanceado (B, B*, B+) IBD - CLASE 6 UNLP - Facultad de Informática

Arboles B Hasta ahora, se han construido árboles desde la raiz hacia abajo. Problemas: Elegir la raiz Mantenerlo balanceado Arboles B  construirlos hacia arriba a partir de la base. La raiz emerge con la construcción. IBD - CLASE 6 UNLP - Facultad de Informática

Árboles B Árboles B (balanceados) Son árboles multicamino con una construcción especial en forma ascendente que permite mantenerlo balanceado a bajo costo. IBD - CLASE 6 UNLP - Facultad de Informática

Arboles B Propiedades de un árbol B de orden M: Orden: cant. máx. de punteros por nodo Cant. de punteros= cant. claves + 1 Ningún nodo tiene más de M hijos C/nodo (menos raíz y los terminales) tienen como mínimo [M/2] hijos La raíz tiene como mínimo 2 hijos (o sino ninguno) Todos los nodos terminales a igual nivel Nodos no terminales con K hijos contienen K-1 nodos. Los nodos terminales tienen: Minimo: [M/2]–1 nodos Máximo: M–1 nodos Formato del nodo Cada Ri-1 < Ri < Ri+1 IBD - CLASE 6 UNLP - Facultad de Informática

Arboles B Estructura Archivo con registros de long. Fija Cada registro tiene una pág. o nodo En Pascal (ver ejemplo): PaginaAB=record cant_claves: integer claves: array [1..maxllaves] of char; hijos: array [1..maxhijos] of integer; end IBD - CLASE 6 UNLP - Facultad de Informática

Arboles B Definición: nodo adyacente hermano Operaciones Dos nodos son adyacentes hermanos si tienen el mismo padre y son apuntados por punteros adyacentes en el padre. Operaciones Búsqueda Borrado Creación e inserción modificación IBD - CLASE 6 UNLP - Facultad de Informática

Arboles B Búsqueda de información Comienza desde el nodo raíz Busca la llave en el nodo Sino la localiza se toma el puntero correspondiente entre las claves existentes Si no es puntero nulo se toma ese nodo y se repite desde principio. Si es un puntero nulo el elemento no se encuentra en el árbol. Ver ejemplos IBD - CLASE 6 UNLP - Facultad de Informática

Arboles B Algoritmo (iterativo) Algoritmo (recursivo) encontro := false (k llave) tomar la raíz Repeat N nro de elementos nodo Case k = llave del registro encontro := true k < llave( R1) P := Po k > llave (Rn) P := Pn otherwise P := Pi (i/ Ri-1 < k <Ri) EndCase IF P not null then leer nodo apuntado por P Until encontro or P null Algoritmo (recursivo) ordem M estruc. del registro Record contador llaves llaves (arreglo M-1 elem.) hijos (arreglo M elem.) End Function Busca (Nrr, llave, NRR_encon, Pos-enc) Si Nrr = nulo entonces devuelve (‘no encon’) sino lee nodo apuntado x NRR en página busca la llave en nodo; Pos:= Posición donde encuentra o debería estar la llave Si encontro llave entonces nrr_encon := Nrr (nodo con la llave) pos_enc := pos (posición dentro de la llave) devuelve (encontrada) sino {busco en el nivel inferior} devuelve (busca( hijo[pos], llave, nrr_encon, pos_enc)) Fin S Fin Function IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Performance Orden M, # de nodos terminales N, N+1 punteros nulos. Accesos: Mejor caso: 1 lectura Pero caso: h lecturas (con h altura del árbol) Como acotamos h Nivel # mínimo de descendientes 1 2 2 2 * [M/2] 3 2 * [M/2] * [M/2] …………………………………………………. h 2 * [M/2]h-1 IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Relacion entre h y # de nodos N+1 >= 2 * [M/2]h-1 h <= 1 + log[M/2] ((N+1)/2) M = 512 y N = 1000000 h <= 3.37 (4 lecturas encuentra un registro) IBD - CLASE 6 UNLP - Facultad de Informática

Arboles B Inserción (creación) Comienza con una búsqueda que llega hasta el nivel hoja Después de encontrar lugar de inserción en el nivel hoja, el trabajo de inserción, división y promoción continúa en forma ascendente desde abajo IBD - CLASE 6 UNLP - Facultad de Informática

Arboles B Inserción (creación) Los registros se insertan en un nodo terminal Casos posibles El registro tiene lugar en el nodo terminal (no se produce overflow): solo se hacen reacomodamientos internos en el nodo El registro no tiene lugar en el nodo terminal (se produce overflow): el nodo se divide y los elementos se reparten entre los nodos, hay una promoción al nivel superior, y esta puede propagarse y generar una nueva raíz. Ver ejemplos Supongamos el orden de un árbol 4 Llegan los elementos: c, s, e, t, a, m, p, i, b, w, d, j IBD - CLASE 6 UNLP - Facultad de Informática

Arboles B Repeat Algoritmo (iterativo) { reg.: reg a insertar fin: inserción finalizada encontro: elemento ya está P: puntero al nodo N_G: nodo sobredimensionado N : # reg } { busco la llave en el árbol } If encontro Then reportar llave repetida Else { insertar elemento } P := nil encontro := falso Repeat Si nodo no esta lleno entonces poner reg y reordenar encontro sino copiar el nodo enN_G insertar reg. en N_G reg:= centro de N_G nodo corr.:=1/2 N_G izq nodo nuevo:=1/2 N_G der If nodo raiz nuevo then generar nuevos punteros Until encontro IBD - CLASE 6 UNLP - Facultad de Informática

Arboles B Algoritmo (recursivo) Funcion inserta (Nrr_Actual, llave, hijo_promo, llave_promo) Si Nrr_Actual = nulo entonces llave_promo := llave hijo_promo := nulo devuelve Promocion (promueve llave original y nulo) sino leer página de Nrr_acutal en pagina buscar llave en pagina pos := posicion donde deberia estar en llave Si encuentra llave entonces devuelve (error) valordevuelto := inserta(pagina, hijo[pos], llave, nrr_P_A, llave_P_a) Si valordevuelto <> promocion entonces devuelve(valordevuelto) sino si hay espacio en pagina para llave_p_a entonces insertar(llave_p_a, nrr_p_a en pagina) promovida abajo devuelve (no promocion) sino divide( llave_p_a, nrr_p_a, pagina, llave_promo, hijo_promo, página_nueva) escribe pagina en archivo en nrr_actual escribe pagina_nueva en hijo_promo devuelve promoción promociona Fin Si llave_promo, hijo_promo fin funcion IBD - CLASE 6 UNLP - Facultad de Informática

Arboles B Procedimiento Divide (llave_i, nrr_i, pagina, llave_promo, hijo_promo, pagina_nueva ) copiar pagina + llave a un nodo que pueda contener a todas las llaves. insertar llave_i, nrr_i en los lugares correctos de la pagina crear una nueva pagina para pagina_nueva asignar a llave_promo el valor de la llave de enmedio de la pagina grande asignar a hijo_d_promo el nrr de pagina_nueva copiar las llaves y apuntadores que preceen a llave_promo en pagina idem posteriores pagina_nueva fin procedemiento IBD - CLASE 6 UNLP - Facultad de Informática

Arboles B Performance Mejor caso (sin overflow) H lecturas 1 escritura Peor caso (overflow hasta la raíz, aumenta en uno el nivel del árbol) 2h+1 escrituras (dos por nivel más la raíz) Estudios realizados M = 10 25% divisiones M = 100 2% divisiones IBD - CLASE 6 UNLP - Facultad de Informática

Arboles B Eliminación Mejor caso: borra un elemento del nodo y no produce underflow, solo reacomodos ( # elementos >= [M/2]-1 Peor caso: se produce underflow, #elementos < [M/2] – 1 Eliminar Nodo terminal Caso 1 Nodo no terminal (llevar a un nodo terminal) Caso 2 Dos soluciones Redistribuir Caso 3 Concatenar Caso 4 IBD - CLASE 6 UNLP - Facultad de Informática

Arboles B Redistribuir Concatenación Cuando un nodo tiene underflow puede trasladarse claves de un nodo adyacente hermano (en caso que este tenga suficientes elementos) Concatenación Si un nodo adyacente hermano está al minimo (no le sobra ningún elemento, no se puede redistribuir), se concatena con un nodo adyacente disminuyendo el # de nodos (y en algunos casos la altura del árbol) Hacer un ejemplo con orden 5 (cuatro elementos por nodo) y poner cualquier llave, en función de eso hacer los siguientes ejemplo Uno: eliminar de un nodo terminal sin problema Dos: eliminar de un nodo no terminal y que no genere problemas Tres: eliminar de un nodo terminal (o no) y que produzca redistribuición Cuatro: ahora que provoque concatenación. IBD - CLASE 6 UNLP - Facultad de Informática

Arboles B Algoritmo de eliminación (iterativo) { fin: indica fin del borrado n_g:nodo tamaño mayor al normal ady: nodo adyacente hermano reg: reg. a borrar} {buscar reg en el árbol } If reg no está en un nodo terminal then buscar el sucesor de reg en un nodo terminal intercalar reg con su sucesor { eliminación de reg } fin := falso repeat remover reg y el puntero asociado If nodo corriente > [M/2] -1 elem. then fin := true else if es posible redistribuir then {redistribuir}{ady.>min.} copiar ady y nodo actual en n_g dividir n_g promover nueva llave a padre armar nodo actual y ady con la mitad de n_g en c/u fin := true else {concatenar} elegir el mejor ady para concat. poner ady y nodo actual juntos y acoplarle elemnto nodo padre eliminar nodo que sobra y producir enganches nuevo reg elemento que bajo nodo padra y que debemos eliminar Until fin IF no hay registro en la raiz then nueva raiz nodo corriente liberar vieja raíz IBD - CLASE 6 UNLP - Facultad de Informática

Arboles Performance Mejor caso (borra de un nodo terminal) H lecturas 1 escritura (escribir el nodo sin el elem. borrado) Peor caso (concatenación lleva a decrementar el nivel del árbol en 1) 2h – 1 lecturas H + 1 escrituras IBD - CLASE 6 UNLP - Facultad de Informática