















Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Estructuras de Datos: Arboles, Arboles AVL, Arboles B
Tipo: Apuntes
1 / 23
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
















Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro
Subárbol A 1 Subárbol A 2 Subárbol A 3 Imagen 82. Ejemplo de Árbol
Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro
A B (^) C D F G H Tenemos que: A es el padre de B, C y D y éstos, por lo tanto, son hijos de A. Entonces B, C y D son hermanos. También H es primo de F y G y sobrino de C y B. Imagen 83. Terminología de Árbol
Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro
Imagen 87. Representación en Lista Generalizadas del Árbol
Árbol con hijo izquierdo Árbol con hijo
Imagen 88. Árbol binario
Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro
Imagen 89. Árbol Binario Completo Lleno
Imagen 90. Árbol Binario Completo
Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro
Imagen 9 4. Árbol Binario Incompleto Oblicuo Derecho A B C D (^) E F Imagen 95. Árbol Binario Incompleto Propiamente Dicho A C F (^) G 1 3 (^6 ) Imagen 96. Árbol Binario Incompleto Propiamente Dicho
Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro
Existen 2 tipos de representación para los árboles binarios: Representación sobre un vector : El vector tiene tantas posiciones como cantidad máxima de nodos que puede tener el árbol. Para crear el vector utilizamos la fórmula: (2k)- 1 , donde k es la cantidad de niveles alcanzados por el árbol. El nodo raíz se encuentra en la posición “1”; los hijos se colocan en las respectivas posiciones. Los nodos en los árboles binarios se enumeran de arriba hacia abajo y de izquierda a derecha y se cumple: Hijo Izquierdo = 2 * i Hijo Derecho = 2 * i + 1 Siendo “i” el valor del padre El tamaño del vector está determinado por 2K^ - 1 Siendo k la cantidad de niveles del árbol Representación sobre Listas encadenadas : los nodos tienen 3 campos: 1 de información y 2 punteros; 1 al hijo izquierdo y otro al hijo derecho.
1 2 4 3 6 7 12 A 1
Imagen 9 7. Representación de Árbol Binario sobre un vector
Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro Representación binaria de árboles n-arios Es conveniente trabajar con árboles binarios ya que los árboles n-arios son representados con nodos y si no se sabe cuántos hijos tiene, entonces se desperdicia mucha memoria. Para transformar un árbol n-ario en binario los pasos a seguir son los siguientes:
Pre Orden: R – I – D A AB ABD ABDC ABDCE ABDCEG ABDCEGF In Orden: I – R - D D DB DBA DBAG DBAGE DBAGEC DBAGECF Post Orden: I – D – R D DB DBG DBGE DBGEF DBGEFC DBGEFCA Imagen 99. Recorridos de árboles
Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro
Los árboles binarios de búsqueda son una estructura de datos básica para la representación de conjuntos cuyos elementos están clasificados de acuerdo con algún orden lineal. Un árbol binario de búsqueda es un árbol en el cual los nodos están etiquetados con elementos de un conjunto. La propiedad importante de este tipo de árboles es que todos los elementos almacenados en el subárbol izquierdo de cualquier nodo X son menores que el elemento almacenado en X; y todos los elementos almacenados en el subárbol derecho de X son mayores que el elemento almacenado en X. esta condición, conocida como propiedad del árbol binario de búsqueda, se cumple para todo nodo de un árbol binario de búsqueda, incluyendo la raíz.
Árbol n-ario
Unir los hijos de un mismo padre
Cortar las uniones “padre – hijo”, excepto la del
Reordenándolo Ejemplo: Imagen 100. Transformación de Arbol n-ario a Binario
Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro Este tipo de árboles se forman en la búsqueda binaria, que es un método de búsqueda (no de ordenamiento), que se aplica sobre una secuencia de claves ordenadas. Trabaja del siguiente modo: divide la secuencia por la mitad y pregunta como es el número buscado ( < o > ) respecto a esa mitad. Luego buscamos en la mitad que contiene a ese número. Así sucesivamente vamos particionando cada parte por la mitad hasta encontrar el número buscado. El producto de esta búsqueda es un árbol binario equilibrado cuya raíz es el número de la 1º mitad en que se divide.
Imagen 102. Ejemplo de construcción árbol binario de búsqueda
Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro Ejemplo: en la secuencia de números del 1 al 100, buscamos la clave 20 El orden de búsqueda es log2 n (tiempo promedio); siendo “n” la cantidad de claves (profundidad). El peor
Para solucionar este problema surgieron los árboles AVL, que estudiaremos luego. Como dijimos anteriormente, se puede insertar y eliminar nodos en los árboles binarios de búsqueda. El procedimiento de inserción no ofrece problemas ya que solo requiere la modificación de un puntero. La eliminación, en cambio, presenta algunos problemas, ya que se debe localizar al nodo y modificar los punteros adecuadamente de modo que no se vaya a desconectar del árbol. Entonces para proceder a la eliminación debemos tener en cuenta que tipo de nodo es: si es Terminal o si tiene hijos. Así:
Más a la derecha del Subárbol izquierdo Más a la izquierda del subárbol derecho 22, 9, 4 y 1 son nodos terminales 30 es hijo único de 20 Imagen 104. Ejemplo de Árbol Binaria de Búsqueda
Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro Donde: HI = altura del subárbol izquierdo HD = altura del subárbol derecho La “altura” esta dado por la profundidad del árbol, que a su vez está dado por la cantidad de ramas o cantidad de niveles que tiene. El algoritmo de búsqueda e inserción de claves para un árbol binario de búsqueda no garantiza que el árbol que se obtiene quede balanceado; ya que el grado de balance depende del orden en el cual son insertadas las claves dentro del árbol. Por consiguiente, es importante tener un algoritmo eficiente de búsqueda e inserción que mantenga el árbol de búsqueda como un árbol binario balanceado. Cada nodo es un árbol binario balanceado, tiene un Factor de Balanceo FB <= 1; dependiendo si la altura del subárbol izquierdo es menor, mayor o igual que la altura del subárbol derecho. El factor de balanceo es FB <= 1 y no FB = 0 por que las claves ingresan de a uno cuando se va construyendo el árbol (por lo que los nodos en algún momento tienen un hijo). Al insertar una nueva clave en un árbol binario de búsqueda, esta puede quedar o no balanceada. Para mantener el árbol balanceado, es necesario realizar una transformación en el árbol tal que:
Imagen 106. Cálculo de factor de balanceo para árbol AVL
Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro Las rotaciones deben hacerse cuando el factor de balanceo FB > 1, para que el árbol quede balanceado. El FB se calcula para todos los nodos y los desbalanceos se corrigen de abajo hacia arriba. Veamos a continuación cada una de las rotaciones: Rotación Derecha – Derecha (RR) : la llave o clave ingresada se ubicó en el subárbol derecho del subárbol derecho del nodo desbalanceado. Rotación: la raíz del subárbol derecho del nodo desbalanceado ocupa el lugar del nodo desbalanceado. Regla Práctica: pasa al nodo desbalanceado, la raíz del subárbol mayor. Rotación Izquierda – Izquierda (LL): la llave que produce el desbalanceo se ubica en el subárbol izquierdo del subárbol izquierdo del nodo desbalanceado. Rotación: la raíz del subárbol izquierdo del nodo desbalanceado ocupa el lugar del nodo desbalanceado. Regla Práctica: pasa al nodo desbalanceado la raíz del subárbol mayor.
FB = 0 – 2 = 2 Nodo desbalanceado Nodo que ingreso y produce el desbalanceo
FB = 1 – 1 = 0 Árbol balanceado Árbol desbalanceado Raíz del subárbol derecho del nodo desbalanceado Imagen 107. Rotación “Derecha-Derecha” para balanceo de árboles AVL
Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro
Un árbol B es una clase especial de un árbol n-ario balanceado que permite recuperar, eliminar e insertar registros de un archivo externo con buen rendimiento en el peor caso. Es decir, que lo que se busca, es minimizar los tiempos de búsqueda, lo que se consigue al disminuir el número de niveles del árbol (su profundidad). Así nacen los árboles B, la disminución de niveles viene dada por el hecho de que un mismo nodo puede contener más de una llave o clave. Un árbol B de orden N-M (B (^) n-m) es un árbol ordenado, balanceado que se caracteriza por:
Para una determinada secuencia de claves, el primer valor que ingresa es la raíz. Para las siguientes claves, se deberá ir verificando si su valor es < o > con respecto a la raíz y se la ubicará a la izquierda o derecha según corresponda. Las comparaciones para buscar una clave siempre se hacen desde la raíz. Las claves siempre ingresan en los nodos terminales, por lo que se dice que los árboles B crecen desde abajo hacia arriba. Para un árbol de orden Bn-m a un mismo nodo le pueden ingresar “n” claves. Cuando ingresa la clave n + 1 el nodo debe peticionarse en 3 y el valor central sube como raíz de un subárbol nuevo, o bien sube a la raíz del subárbol
FB = 0 – 2 = 2 Nodo desbalanceado Nodo que ingreso y produce el desbalanceo
FB = 1 – 1 = 0 Árbol balanceado Árbol desbalanceado Raíz del subárbol derecho del nodo desbalanceado Imagen 110. Rotación “Izquierda-Derecha” para balanceo de árboles AVL
Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro ya existente. En caso de que el valor central de la partición quede formado por 2 claves, se elige cualquiera para subir, pero siempre se conservará uniformidad en este criterio. Ejemplo: Construir un árbol B(2-3) con las siguientes claves: 5, 7, 20, 40, 11, 61, 30. 5
Sube el valor centra y se posiciona como una nueva raíz, podemos observar que este tipo de árboles crece desde abajo hacia arriba.
Imagen 111. Construcción de árbol-B(2-3)