Download Diapositiva 1

Document related concepts

Árbol binario wikipedia , lookup

Recorrido de árboles wikipedia , lookup

Árbol binario de búsqueda wikipedia , lookup

Treap wikipedia , lookup

Rotación de árboles wikipedia , lookup

Transcript
Estructura de Datos
Unidad 6:
ARBOLES
A. CONCEPTO DE ARBOL
B. TIPOS DE ARBOL
C. ARBOL BINARIO
D. IMPLEMENTACION DE UN ARBOL BINARIO
E. PROYECTO
M.C. Gustavo A. Gutiérrez Carreón
may-10
Introducción
 En ciencias de la informática, un árbol es una estructura de datos




ampliamente usada que imita la forma de un árbol (un conjunto de
nodos conectados).
Un nodo es la unidad sobre la que se construye el árbol y puede
tener cero o más nodos hijos conectados a él.
Se dice que un nodo a es padre de un nodo b si existe un enlace
desde a hasta b (en ese caso, también decimos que b es hijo de a).
Sólo puede haber un único nodo sin padres, que llamaremos raíz.
Un nodo que no tiene hijos se conoce como hoja.
Los demás nodos (tienen padre y uno o varios hijos) se les conoce
como rama.
M.C. Gustavo A. Gutiérrez Carreón
may-10
Introducción - Tipos de Árboles
 Árboles Binarios
 Árbol de búsqueda binario auto-balanceable (intenta mantener su
altura, o el número de niveles de nodos bajo la raíz, tan pequeños
como sea posible )
 Árboles AVL
 Árboles Rojo-Negro
 Árbol AA
 Árboles B (Los árboles B mantienen los datos ordenados y las
inserciones y eliminaciones se realizan en tiempo logarítmico
amortizado)
 Árbol-B+
 Árbol-B*
 Árboles Multicamino (posee un grado g mayor a dos, donde cada
nodo de información del árbol tiene un máximo de g hijos)
M.C. Gustavo A. Gutiérrez Carreón
may-10
Árbol Binario
 Un árbol binario es una estructura de datos en la cual cada
nodo siempre tiene un hijo izquierdo y un hijo derecho.
 No pueden tener más de dos hijos (de ahí el nombre
"binario").
 Si algún hijo tiene como referencia a null, es decir que no
almacena ningún dato, entonces este es llamado un nodo
externo.
 En el caso contrario el hijo es llamado un nodo interno.
M.C. Gustavo A. Gutiérrez Carreón
may-10
Árbol Binario
 Un árbol binario es un árbol con raíz en el que cada nodo
tiene como máximo dos hijos.
 Un árbol binario lleno es un árbol en el que cada nodo tiene
cero o dos hijos.
 Un árbol binario perfecto es un árbol binario lleno en el que
todas las hojas (vértices con cero hijos) están a la misma
profundidad (distancia desde la raíz, también llamada altura).
 A veces un árbol binario perfecto es denominado árbol
binario completo.
M.C. Gustavo A. Gutiérrez Carreón
may-10
Recorridos sobre árboles binarios
 Recorrido en preorden
 En este tipo de recorrido
se realiza cierta acción
sobre el nodo actual y
posteriormente se trata el
subárbol izquierdo y
cuando se haya concluido,
el subárbol derecho.
 En el árbol de la figura el
recorrido en preorden
sería: 2, 7, 2, 6, 5, 11, 5, 9
y 4.
M.C. Gustavo A. Gutiérrez Carreón
 Un árbol binario sencillo
de tamaño 9 y altura 3, con
un nodo raíz cuyo valor es
2.
may-10
Recorridos sobre árboles binarios
 Recorrido en
postorden
 En este caso se trata
primero el subárbol
izquierdo, después el
derecho y por último el
nodo actual.
 En el árbol de la figura el
recorrido en postorden
sería: 2, 5, 11, 6, 7, 4, 9, 5
y 2.
M.C. Gustavo A. Gutiérrez Carreón
 Un árbol binario sencillo
de tamaño 9 y altura 3, con
un nodo raíz cuyo valor es
2.
may-10
Recorridos sobre árboles binarios
 Recorrido en inorden
 En este caso se trata primero
el subárbol izquierdo,
después el nodo actual y por
último el subárbol derecho.
 En un ABB este recorrido
daría los valores de clave
ordenados de menor a mayor.
 En el árbol de la figura el
recorrido en inorden sería: 2,
7, 5, 6, 11, 2, 5, 4 y 9.
M.C. Gustavo A. Gutiérrez Carreón
 Un árbol binario sencillo de
tamaño 9 y altura 3, con un
nodo raíz cuyo valor es 2.
may-10
Árbol Binario de Búsqueda
 Un árbol binario de búsqueda (ABB) es un árbol binario




definido de la siguiente forma:
Todo árbol vacío es un árbol binario de búsqueda.
Un árbol binario no vacío, de raíz R, es un árbol binario de
búsqueda si:
En caso de tener subárbol izquierdo, la raíz R debe ser mayor
que el valor máximo almacenado en el subárbol izquierdo, y
que el subárbol izquierdo sea un árbol binario de búsqueda.
En caso de tener subárbol derecho, la raíz R debe ser menor
que el valor mínimo almacenado en el subárbol derecho, y
que el subárbol derecho sea un árbol binario de búsqueda
M.C. Gustavo A. Gutiérrez Carreón
may-10
Implementación (ABB – enteros)
may-10
Implementación (ABB – enteros)
may-10
Implementación (ABB – enteros)
M.C. Gustavo A. Gutiérrez Carreón
may-10
Implementación (ABB – enteros)
M.C. Gustavo A. Gutiérrez Carreón
may-10
Implementación (ABB – enteros)
M.C. Gustavo A. Gutiérrez Carreón
may-10
Implementación (ABB – enteros)
M.C. Gustavo A. Gutiérrez Carreón
may-10
Implementación (ABB – enteros)
M.C. Gustavo A. Gutiérrez Carreón
may-10
Implementación (ABB – enteros)
M.C. Gustavo A. Gutiérrez Carreón
may-10
Implementación (ABB – enteros)
M.C. Gustavo A. Gutiérrez Carreón
may-10
Tarea
 Haga un programa utilizando su implementación de enteros,
pero con String.
 Almacene varias palabras y haga el recorrido inorden para
verificar que lo ordena alfabéticamente.
M.C. Gustavo A. Gutiérrez Carreón
may-10
Altura de un árbol
 Es la máxima cantidad de nodos que se recorrerán desde el
último nivel de nodo hasta la raíz.
M.C. Gustavo A. Gutiérrez Carreón
may-10
Hojas de un árbol
 Son aquellos nodos del árbol que no tienen hijos.
M.C. Gustavo A. Gutiérrez Carreón
may-10
Ancestros de un nodo
 Son aquellos nodos que preceden a partir de la raíz a un
determinado valor de nodo.
M.C. Gustavo A. Gutiérrez Carreón
may-10