Árboles Binarios · Arboles Binarios Principios de Computadoras II Ricardo Coppo 4 Universidad...
Embed Size (px)
Transcript of Árboles Binarios · Arboles Binarios Principios de Computadoras II Ricardo Coppo 4 Universidad...
-
Principios de Computadoras II
Árboles Binarios
Departamento de Ingeniería Electrónica y ComputadorasUniversidad Nacional del Sur
Ricardo [email protected]
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
2Universidad Nacional del Sur
Definición conceptual de árbol binario� Un árbol binario es una estructura de información
compuesta por colección o conjunto de nodos y arcos que forman una estructura jerárquica
� Posee una raíz de la cual dependen a lo sumo 2 subárboles no vacíos
� Cada subárbol posee una arista única que lo une con la raíz.
� Los nodos que no poseen subárboles dependientes se denominan “hojas” del árbol.
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
3Universidad Nacional del Sur
Ejemplo gráficoRaíz
Subárbolderecho
Subárbolizquierdo
La raíz puede estar vacía
Existe unarelación de“paternidad”
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
4Universidad Nacional del Sur
Definición recursiva� Formalmente un árbol binario se puede definir
de manera recursiva como sigue:
� Una estructura vacía es un árbol (árbol vacío)
� Sean A1 y A2 árboles disjuntos con raíces r1 y r2 respectivamente. Entonces, la estructura formada con un nodo r, que posee como hijos a A1 y A2 también es un árbol
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
5Universidad Nacional del Sur
Ejemplo
A1 A2
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
6Universidad Nacional del Sur
Ejemplo
A1 A2
A11 A12 A21 A22
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
7Universidad Nacional del Sur
Ejemplo
A1 A2
A11 A12 A21 A22
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
8Universidad Nacional del Sur
Definiciones� Un “camino” entre un nodo n1 y nk se define como
una secuencia de nodos n1, n2, …, nk tal que ni es el padre de ni+1 para 1
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
9Universidad Nacional del Sur
Definiciones� Si hay un camino del nodo u al nodo v, entonces v
es “descendiente” de u.
� Si además u ≠ v entonces v es “descendiente propio” de u.
� De forma similar se puede definir “ascendiente” y “ascendiente propio”
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
10Universidad Nacional del Sur
Definiciones� Un nodo que no tiene hijos es una “hoja” del árbol
� Dos nodos que tienen al mismo padre son “hermanos”
� Se pueden definir otras relaciones de parentesco como “tíos”, “abuelos”, etc.
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
11Universidad Nacional del Sur
Definiciones� Para cualquier nodo ni, la “profundidad” de ni es la
longitud del camino desde la raíz hasta ni
� La “altura” de ni está dado por el camino más largo del nodo ni hasta una hoja (las hojas son de altura 0)
� La “altura” de un árbol es la altura de la raíz
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
12Universidad Nacional del Sur
Propiedades especiales� La cantidad máxima de hojas que puede tener un
árbol binario depende de la altura del mismo
� Altura 0 (árbol vacío) Hojasmax = 0� Altura 1 (raíz solo) Hojasmax = 2
1-1 = 1� Altura 2 Hojasmax = 2
2-1 = 2� Altura 3 Hojasmax = 2
3-1 = 4
� Altura h Hojasmax = 2h-1
En un árbol general no se puede calcular este valor
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
13Universidad Nacional del Sur
Árbol Binario (Implementación)Descripción del nodo
del árbol
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
14Universidad Nacional del Sur
Árbol Binario (Implementación)Descripción del nodo
del árbol
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
15Universidad Nacional del Sur
Árbol Binario (Implementación)La clase principal
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
16Universidad Nacional del Sur
Árbol Binario (Implementación)La clase principal
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
17Universidad Nacional del Sur
Árbol Binario (Implementación)La clase principal
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
18Universidad Nacional del Sur
Árbol Binario (prueba)
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
19Universidad Nacional del Sur
Árbol Binario de Búsqueda(Binary Search Tree – BST)
� Un árbol binario de búsqueda es un árbol binario que además presenta las siguientes propiedades:
� Los valores o nodos contienen elementos que pueden ser ordenados de alguna manera (enteros, cadenas de caracteres, u otro orden definido por el programador).
� Para cada nodo del árbol que almacena un elemento v, todos los elementos xv se encuentran el en subárbol derecho.
� En principio se evita el almacenamiento de valores duplicados eneste tipo de árbol.
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
20Universidad Nacional del Sur
Arboles binarios de búsquedaK
A P
N R
45
35 99
22 37
En este tipo de árbol se evita almacenar valores re petidos.
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
21Universidad Nacional del Sur
Árboles Binarios de Búsqueda� Si el árbol se encuentra balanceado, los algoritmos de
búsqueda son muy eficientes O(log n).� En el peor caso se comporta como una lista enlazada
� Los algoritmos de determinación del mínimo y máximo elemento almacenado también son muy eficientes.
� Recorrer siempre a la derecha o a la izquierda hasta encontrar una hoja
� Debido a la velocidad de la búsqueda se puede definir un método “contiene(x)” o “pertenece(x)” que dado un valor x, determina si se encuentra o no en el árbol.
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
22Universidad Nacional del Sur
Árbol Binario de Búsqueda
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
23Universidad Nacional del Sur
Árbol Binario de BúsquedaImplementación
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
24Universidad Nacional del Sur
Árbol Binario de BúsquedaImplementación
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
25Universidad Nacional del Sur
Implementación
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
26Universidad Nacional del Sur
Árbol Binario de Búsqueda
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
27Universidad Nacional del Sur
Implementación
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
28Universidad Nacional del Sur
Árbol Binario de Busqueda: Eliminación
Eliminar una hoja del árbol
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
29Universidad Nacional del Sur
Árbol Binario de Búsqueda: Eliminación
Eliminar un nodo con un solo hijo
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
30Universidad Nacional del Sur
Árbol Binario de Búsqueda: Eliminación
Eliminar un nodo con un solo hijo
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
31Universidad Nacional del Sur
Árbol Binario de Búsqueda: Eliminación
Eliminar un nodo con un solo hijo
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
32Universidad Nacional del Sur
Implementación
Sigue…
REVIS
AR!!
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
33Universidad Nacional del Sur
Implementación
Sigue…
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
34Universidad Nacional del Sur
Árbol de Búsqueda BinariaEliminación
-
Principios de Computadoras IIArboles BinariosRicardo Coppo
35Universidad Nacional del Sur
Programa principal
-
Principios de Computadoras II
Árboles Binarios
Departamento de Ingeniería Electrónica y ComputadorasUniversidad Nacional del Sur
Ing. Ricardo [email protected]