Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Estructuras de Datos: Arboles, Apuntes de Estructuras de Datos y Algoritmos

Estructuras de Datos: Arboles, Arboles AVL, Arboles B

Tipo: Apuntes

2025/2026

Subido el 09/03/2026

gabriel-alejandro-lopez-quesada
gabriel-alejandro-lopez-quesada 🇦🇷

5 documentos

1 / 23

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Año 2024 - Estructura de Datos y Algoritmos
Plantel Docente: Mgtr. Escobal Blanco Cesar
Esp. López Quesada Gabriel Alejandro
Página 57
Los árboles son estructuras que permiten representar datos que tienen enlaces jerárquicos entre
ellos.
Definición: Un árbol es un grafo acíclico conectado, el cual se define como un conjunto de uno o más nodos
tales que:
1. Existe un nodo especial llamado “raíz”.
2. Los nodos restantes se agrupan en K conjuntos disjuntos cada uno de los cuales es un árbol
denominado “subárbol del nodo raíz”.
Un árbol es una colección de elementos llamados “nodos”, uno de los cuales se distingue como “raíz”,
junto con una relación (de paternidad) que impone una estructura jerárquica sobre los nodos.
A
B
D
E
F
C
G
H
Subárbol A1
Subárbol A2
Subárbol A3
Imagen 82. Ejemplo de Árbol
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17

Vista previa parcial del texto

¡Descarga Estructuras de Datos: Arboles y más Apuntes en PDF de Estructuras de Datos y Algoritmos solo en Docsity!

Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro

Los árboles son estructuras que permiten representar datos que tienen enlaces jerárquicos entre

ellos.

Definición : Un árbol es un grafo acíclico conectado, el cual se define como un conjunto de uno o más nodos

tales que:

1. Existe un nodo especial llamado “raíz”.

2. Los nodos restantes se agrupan en K conjuntos disjuntos cada uno de los cuales es un árbol

denominado “subárbol del nodo raíz”.

Un árbol es una colección de elementos llamados “nodos”, uno de los cuales se distingue como “raíz”,

junto con una relación (de paternidad) que impone una estructura jerárquica sobre los nodos.

A

B D

E F

C

G

H

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

Formalmente un árbol se puede definir de manera recursiva como:

1. Un solo nodo es, por si mismo, un árbol. Siendo ese nodo la raíz de dicho árbol.

2. Es conveniente incluir entre los árboles el “árbol nulo”, que es un árbol sin nodos que se representa

mediante el símbolo Lambda 

Terminología

1. Nodo Raíz o Raíz del Árbol : elemento superior del árbol.

2. Nodo Terminal, Hoja o Rama : es un nodo que no tiene hijos.

3. Nodo Interior o Bifurcación : nodo con 1 o más subárboles.

4. Descendiente o Hijo : es un nodo situado directamente debajo de otro.

5. Ascendente o Padre : es un nodo situado directamente encima de otro.

Analicemos el siguiente árbol

Características

1. Un nodo tiene un único padre.

2. Entre 2 nodos existe solamente un único “camino”.

3. Si existe un camino entre el nodo “i” y un nodo “j”; se dice que el nodo “i” es un “antecesor” y el

nodo “j” es una descendencia del nodo “i”.

4. Los nodos se organizan en “niveles”. La raíz se encuentra en el nivel 0. En la gráfica anterior A es del

nivel 0 y B, C y D del nivel 1.

5. El grado de un nodo: esta dado por la cantidad de hijos o subárboles que tenga.

6. El grado de un árbol: depende del nodo de mayor grado.

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

Representación con Listas Generalizadas : la lista debe estar definida en un directorio. Cada padre se

encuentra en un mismo nivel con sus hijos.

Árboles Binarios

Definición : un árbol binario es un conjunto finito de “n” nodos en donde existe un nodo llamado “raíz”

y los demás nodos se agrupan en 2 conjuntos disjuntos denominados “subárbol izquierdo” y “subárbol

derecho”.

Es decir que, en un árbol binario, un nodo no tiene “hijos”; sino que tiene “un hijo izquierdo” y un

“hijo derecho” y se cumple que:

L A B *

C E * D F G *

Imagen 87. Representación en Lista Generalizadas del Árbol

A

B B

A

Árbol con hijo izquierdo Árbol con hijo

≠ derecho

Imagen 88. Árbol binario

Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro

Clasificación :

Los árboles binarios se clasifican de la siguiente manera:

Completo propiamente dicho

Completos Llenos

Binarios propiamente dicho

Izquierdo

Oblicuos Derecho

Incompleto Propiamente dicho

Binario propiamente dicho

Árboles Completos

  1. Árboles llenos : Son árboles en el que cada nodo tiene cero o dos hijos, sus nodos terminales están todos en un mismo nivel (Esta formado por nodos de grado 2).
  2. Árboles completos propiamente dicho : es un árbol lleno hasta el nivel (n-1) y en el último nivel (n) los nodos se encuentran más a la izquierda posible.

A

B C

D E F G

Imagen 89. Árbol Binario Completo Lleno

A

B C

D E

Imagen 90. Árbol Binario Completo

Plantel Docente: Mgtr. Escobal Blanco Cesar Esp. López Quesada Gabriel Alejandro

  1. Árbol Oblicuo Derecho : no tiene los subárboles izquierdos.
  2. Árbol Incompleto propiamente dicho
  3. Árbol Incompleto Binario propiamente dicho

B

A

C

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

Representación Interna de Árboles Binarios

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.

A

B C

D E

F

G

1 2 4 3 6 7 12 A 1

B

C

D

E

F

G

Imagen 9 7. Representación de Árbol Binario sobre un vector

PA INFO PS

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:

  1. Se empieza por el último nivel.
  2. Unir los hijos de un mismo padre (los hermanos).
  3. Cortar las uniones “padre – hijo”, excepto la del hijo de mas a la izquierda.
  4. Subir al nivel inmediato superior y repetir los pasos 2 a 4 inclusive.
  5. El proceso termina cuando se llega al nodo raíz.
  6. Reordenar el árbol con el siguiente criterio:
    • Las ramas que quedan hacia abajo son hijos izquierdos.
    • Las ramas que quedan hacia la derecha son hijos derechos.

A

B C

D E F

G

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

Árboles de búsqueda

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.

A

E F G H I J

B C D

Árbol n-ario

A

E F G H I J

B D

Unir los hijos de un mismo padre

A

E F G H I J

B C D

Cortar las uniones “padre – hijo”, excepto la del

hijo de mas a la izquierda A

J

I

H

F G

E

B

D

C

Reordenándolo Ejemplo: Imagen 100. Transformación de Arbol n-ario a Binario

C

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.

  1. Llega (30) y el procedimiento se repite hasta encontrar su posición dentro del árbol. 10 30 > 5 20 30 > 10 30 30 > 20
  1. Llega (22) y el procedimiento se repite hasta encontrar su posición dentro del árbol. 10 22 > 5 20 22 > 10 30 22 > 20 22 22 < 30
  1. Llega (7) y el procedimiento se repite hasta encontrar su posición dentro del árbol. 10 7 > 5 20 7 < 10 30 22 7 5
  2. Llega (3) y el procedimiento se repite hasta encontrar su posición dentro del árbol. 10 3 < 5 20 30 22 7
  1. Llega (1) y el procedimiento se repite hasta encontrar su posición dentro del árbol. 10 1 < 5 20 30 22 7

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

tiempo de búsqueda es  (n), que se cumple cuando tenemos un árbol oblicuo izquierdo o derecho.

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í:

  • Caso 1: Si el nodo es Terminal: no hay problema, se lo elimina y en el puntero del padre se pone *
  • Caso 2: Si el nodo tiene un hijo: el hijo pasa a ocupar el lugar del nodo que quiero eliminar (de su padre). Lógicamente, para ellos deberá corregir los punteros que sean necesarios.
  • Caso 3: Si el nodo tiene 2 hijos: el nodo que pasa al lugar del nodo a eliminar, es el nodo o clave que se encuentra más a la derecha del subárbol izquierdo; o la clave que se encuentra más a la izquierda del subárbol derecho. De esta manera, el árbol siempre queda ordenado. Ejemplo. 3º división 20 > 12 2º división 20 < 25 1º división 20 < 50 1 12 18 20 25 50 100 Imagen 103. Búsqueda Binaria de la clave 20

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:

  1. el recorrido In Orden del árbol transformado sea el mismo que el del árbol original.
  2. el árbol transformado este balanceado. Para balancear un árbol binario de búsqueda existen 4 tipos de “rotaciones”. - Rotación Derecha – Derecha (RR) - Rotación Izquierda – Izquierda (LL) - Rotación Derecha – Izquierda (RL) - Rotación Izquierda – Derecha (LR)

FB =  1 – 2 = 1

FB =  0 – 0 = 0 FB =  1 – 1 = 0

FB =  0 – 0 = 0 FB =  0 – 0 = 0

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

Árboles B

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:

  1. puede tener hasta “n” claves por nodos
  2. puede tener hasta “m” hijos por nodos
  3. se cumple que: m = n+
  4. las claves se encuentran ordenadas
  5. los nodos terminales se encuentran siempre en el mismo nivel, por lo que se dice que el árbol esta “balanceado”. Si se aumenta el número de claves por nodo, el nivel del árbol disminuye.

Construcción

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

  1. El primer elemento en ingresar (5) será la raíz del árbol. 5 - 7
  2. El siguiente elemento en ingresar (7) es comparado con la clave existente (5) y se ubica según corresponda. 7 > 5 entonces se ubica a su derecha
  1. El siguiente elemento en ingresar (20) es comparado con las claves ya existentes y se ubica según corresponda. n = 3 entonces debe subir la clave del medio 5
  2. Subiendo la clave del medio rebalanceamos nuestro árbol. sube 7 como raíz para rebalancear el árbol
  1. El siguiente elemento en ingresar (40) es comparado con las claves ya existentes y se ubica según corresponda. 7 20 - 40 5
  2. El siguiente elemento en ingresar (11) es comparado con las claves ya existentes y se ubica según corresponda. n = 3 entonces debe subir una clave la raíz
  1. Sube 20 a la raíz del árbol, pero al tener 2 claves debería tener 3 hijos. 7 - 20 11 - 40 5
  2. Buscamos el valor comprendido entre (7) y (20) para ubicarlo como el tercer hijo. Si comparamos desde la raíz del árbol podemos observar que todos los valores menores a (7) están a su izquierda, los valores comprendidos entre (7) y (29) van en el centro, y los mayores a 20 a la derecha de la raíz.
  1. Con el árbol correctamente balanceado ingresamos el siguiente elemento (61). 7 - 20 11 40 - 61 5
  2. El siguiente elemento en ingresar (30) es comparado con las claves ya existentes y se ubica según corresponda. 7 - 20 11 30 - 40 - 61 n = 3 entonces debe subir una clave la raíz
  1. Al subir la clave (40) a la raíz se produce en ella un nuevo desequilibrio. 7 - 20 - 40 11 30 - 61 n = 3 entonces debe subir una clave la raíz 5
  2. Finalmente la clave (20) será la nueva raíz de nuestro árbol. 7 11 61

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)