You are on page 1of 17

ARBOLES

Ing. Betty Suárez Torres


COMPETENCIA

Construye aplicaciones informáticas eficientes


con estructuras de datos estáticas y dinámicas;
innovando en la búsqueda de soluciones con
iniciativa, creatividad y responsabilidad.
DEFINICIÓN

Los árboles son estructuras no lineales y homogéneas en


el que cada elemento puede tener varios elementos
posteriores, pero tan sólo un elemento anterior.
Los árboles son TDA’s adecuados para el tratamiento de
grandes cantidades de información.
Los árboles son muy utilizados en informática para
representar fórmulas algebraicas como un método
eficiente para búsquedas grandes y complejas, listas
dinámicas y aplicaciones diversas tales como inteligencia
artificial o algoritmos de cifrado, asimismo para el diseño
de compiladores, procesamiento de texto y algoritmos de
búsqueda.
ELEMENTOS

Nodo padre: Nodo que apunta a dos nodos hijos.


En un árbol cada nodo sólo puede tener un padre.
Nodo hijo: Es cualquier nodo apuntado por el
nodo padre, un nodo puede tener varios hijos pero
en los árboles binarios sólo puede tener dos.
Nodo raíz: Es el único nodo que no tiene padre y
es el que define el lugar de los demás nodos o
información almacenada.
Hojas: Son todos los nodos que no tienen hijos y
apuntan a null.
ELEMENTOS …

Nodos interiores: Son todos aquellos nodos que no


son ni el nodo raíz ni los nodos hojas.
Un subárbol de un árbol: Es un nodo junto con
todos sus descendientes.
Camino: Es una secuencia de nodos que sirve para
llegar a un dato en el árbol.
Rama: Es un camino que comprende desde la raíz y
cualquiera de las hojas.
Altura: Es el máximo número de nodos de las ramas
del árbol, es decir, el máximo número de nodos que
hay que recorrer para llegar a una hoja desde la raíz.
ELEMENTOS

Nivel 0
Nodo padre Raíz

Nivel 1
NP NP

Nivel 1
H NP H

Nodo derecho
Nodo izquierdo Números < padre
Números < padre
H
Nivel 0
TIPOS DE ÁRBOLES

• Árboles perfectamente balanceados: Son árboles


en los que para cada nodo el número de nodos en
sus subárboles derecho e izquierdo difieren como
máximo en uno.
• Un árbol binario (AB): Es un árbol en el que
ningún nodo puede tener más de dos subárboles. En
un árbol binario cada nodo puede tener, cero, uno o
dos hijos (subárboles). Se conoce el nodo de la
izquierda como hijo izquierdo y el nodo de la
derecha como hijo derecho.
ÁRBOLES BINARIOS DE BÚSQUEDA
(ABB)

• Los árboles binarios de búsqueda son un tipo


especial de árboles binarios, en donde los
valores contenidos en el subárbol izquierdo de
cualquiera de sus nodos son menores al valor
de la raíz; y que todos los nodos que se
encuentran en su subárbol derecho contienen
valores mayores que el contenido de la raíz.
• Los valores duplicados son rechazados.
OPERACIONES EN ABB

1. Inserción de nodos: Las inserciones de nodos


sólo pueden hacerse como hojas, nunca como
nodos interiores, pudiendo insertarse un nodo
como raíz únicamente cuando el árbol esté vacío.
Procedimiento:
a. Al insertar el nodo se debe determinar si se
coloca como raíz o como hijo de algún nodo
del árbol.
b. Utilizar una función recursiva que en base a
algún criterio, determinará el lugar donde será
ubicado el nuevo nodo (recorrido).
OPERACIONES EN ABB ...

2. Recorrido: Para visualizar o consultar los datos


almacenados en un árbol se necesita recorrer el
árbol o visitar los nodos del mismo. Al contrario que
las listas enlazadas, los árboles binarios no tienen
realmente un primer valor, un segundo valor, tercer
valor, etc.
La designación tradicional de los recorridos utiliza un
nombre para el nodo raíz (N), para el subárbol
izquierdo (I) y para el subárbol derecho (D):
o Preorden (nodo-izquierdo-derecho) (NID)
o Enorden (izquierdo-nodo-derecho) (IND)
o Postorden (izquierdo-derecho-nodo) (IDN)
EJEMPLO DE RECORRIDO EN ABB - I

1. Recorrido en pre-orden
• Visitar la raíz
• Recorrer el subárbol izquierdo en pre-orden
• Recorrer el subárbol derecho en pre-orden

+
ÁRBOL 1: c * d + e

Pre-orden: + * cde * e

c d
EJEMPLO DE RECORRIDO EN ABB - I

2. Recorrido en-orden
• Recorrer el subárbol izquierdo en in-orden
• Visitar la raíz
• Recorrer el subárbol derecho en in-orden

+
ÁRBOL 1: c * d + e

In-orden: c * d + e * e

c d
EJEMPLO DE RECORRIDO EN ABB - I

3. Recorrido post-orden
• Recorrer el subárbol izquierdo en in-orden
• Recorrer el subárbol derecho en in-orden
• Visitar la raíz

ÁRBOL 1: c * d + e +

Post-orden: cd * e + * e

c d
EJEMPLO DE RECORRIDO EN ABB - II

1. Recorrido en Pre-orden:
mebadlpnvtz
2. Recorrido en In-orden
abdelmnptvz
3. Recorrido en Post-orden M
adblentzvpm
E P

ÁRBOL 2
B L N V

A D T Z
EJEMPLO DE RECORRIDO EN ABB - III

1. Recorrido en Pre-orden:
/ + * + ab / cd ^ efg
2. Recorrido en In-orden
/
a+b*c/d+e^f/g
3. Recorrido en Post-orden
+ g
ab + cd / * ef ^ + g /

* ^

ÁRBOL 3
+ / e f

a b c d
EJEMPLO DE RECORRIDO EN ABB - IV

1. Recorrido en Pre-orden:
7, 3, 1, 5, 6, 8, 9
2. Recorrido en In-orden
1, 3, 5, 6, 7, 8, 9
3. Recorrido en Post-orden 7
1, 6, 5, 3, 9, 8, 7
3 8

ÁRBOL 4: 1 5
9

7, 3, 1, 5, 6, 8, 9 6
PREGUNTAS?