You are on page 1of 28

ÁRBOLES BINARIOS Y ÁRBOLES

ORDENADOS
ING. ARMANDO CARDONA PAIZ
RECORRIDO DE UN ÁRBOL

• 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, un tercer valor, etc.
• Raíz viene el primero, pero, ¿quién viene a continuación?
TIPOS DE RECORRIDO DE UN ÁRBOL
• El recorrido de un árbol binario requiere que cada nodo del árbol sea
procesado (visitado) una vez, y sólo una, en una secuencia predeterminada.
Existen dos enfoques generales para la secuencia de recorrido, profundidad
y anchura.

En el recorrido en profundidad: En el recorrido en anchura: El proceso se


El proceso exige un camino desde la raíz realiza horizontalmente desde el raíz a
a través de un hijo, al descendiente más todos sus hijos; a continuación, a los hijos
lejano del primer hijo antes de proseguir de sus hijos y así sucesivamente hasta que
a un segundo hijo. En otras palabras, en todos los nodos han sido procesados. En
el recorrido en profundidad, todos los el recorrido en anchura, cada nivel se
descendientes de un hijo se procesan procesa totalmente antes de que
antes del siguiente hijo. comience el siguiente nivel.
RECORRIDO PREORDEN

El recorrido preorden 2 (NID) conlleva los siguientes pasos,


en los que el nodo raíz va antes que los subárboles:
• 1. Visitar el nodo raíz (N).
• 2. Recorrer el subárbol izquierdo (I) en preorden.
• 3. Recorrer el subárbol derecho (D) en preorden.
1. VISITAR EL NODO RAÍZ (N).
2. RECORRER EL SUBÁRBOL IZQUIERDO (I) EN PREORDEN.
3. RECORRER EL SUBÁRBOL DERECHO (D) EN PREORDEN.
RECORRIDO EN ORDEN
• El recorrido en orden (inorder) procesa primero el subárbol izquierdo,
después el raíz y, a continuación, el subárbol derecho. El significado de in es
que la raíz se procesa entre los subárboles. Si el árbol no está vacío, el
método implica los siguientes pasos:
• 1. Recorrer el subárbol izquierdo (I) en orden.
• 2. Visitar el nodo raíz (N).
• 3. Recorrer el subárbol derecho (D) en orden.
1. RECORRER EL SUBÁRBOL IZQUIERDO (I) EN ORDEN.
2. VISITAR EL NODO RAÍZ (N).
3. RECORRER EL SUBÁRBOL DERECHO (D) EN ORDEN.
RECORRIDO POSTORDEN
• El recorrido postorden (IDN) procesa el nodo raíz (post) después de que los
subárboles izquierdo y derecho se hayan procesado. Comienza situándose en
la hoja más a la izquierda y se procesa. A continuación, se procesa su
subárbol derecho. Por último, se procesa el nodo raíz. Las etapas del
algoritmo, si el árbol no está vacío, son:
• 1. Recorrer el subárbol izquierdo (I) en postorden.
• 2. Recorrer el subárbol derecho (D) en postorden.
• 3. Visitar el nodo raíz (N).
1.RECORRER EL SUBÁRBOL IZQUIERDO (I) EN POSTORDEN.
2. RECORRER EL SUBÁRBOL DERECHO (D) EN POSTORDEN.
3. VISITAR EL NODO RAÍZ (N).

D-E-B-F-G-C-A.
ÁRBOL BINARIO DE BÚSQUEDA

• Los árboles estudiados hasta ahora no tienen un orden definido; sin embargo,
los árboles binarios ordenados tienen sentido. Estos árboles se denominan
árboles binarios de búsqueda, debido a que se puede buscar en ellos un
término utilizando un algoritmo de búsqueda binaria similar al empleado en
arrays.
ÁRBOL BINARIO DE BÚSQUEDA
• Un árbol binario de búsqueda es aquel en que, dado un nodo, todos los
datos del subárbol izquierdo son menores que los datos de ese nodo,
mientras que todos los datos del subárbol derecho son mayores que sus
propios datos.
CREACIÓN DE UN ÁRBOL BINARIO DE BÚSQUEDA

• Se crea un árbol binario de búsqueda con los valores 8, 3, 1, 20, 10, 5, 4.


Para todo nodo del árbol, los datos a su izquierda deben ser menores que el
dato del nodo actual, mientras que todos los datos a la derecha deben ser
mayores que el del nodo actual. Inicialmente, el árbol está vacío y se desea
insertar el 8. La única elección es almacenar el 8 en el raíz:

8, 3, 1, 20, 10, 5, 4.
8, 3, 1, 20, 10, 5, 4.
8, 3, 1, 20, 10, 5, 4.
8, 3, 1, 20, 10, 5, 4.
8, 3, 1, 20, 10, 5, 4.
8, 3, 1, 20, 10, 5, 4.
8, 3, 1, 20, 10, 5, 4.
OPERACIONES EN ÁRBOLES BINARIOS DE
BÚSQUEDA
• Los árboles binarios de búsqueda, al igual que los árboles binarios, tienen
naturaleza recursiva y, en consecuencia, las operaciones sobre los árboles son
recursivas, si bien siempre se tiene la opción de realizarlas de forma
iterativa. Estas operaciones son:
• Búsqueda de un nodo. Devuelve la referencia al nodo del árbol o null.•
• Inserción de un nodo. Crea un nodo con su dato asociado y lo añade, en
orden, al árbol.
• Borrado de un nodo. Busca el nodo del árbol que contiene un dato y lo quita.
El árbol debe seguir siendo de búsqueda.
• Recorrido de un árbol. Los mismos recorridos de un árbol binario preorden,
inorden y postorden.
BUSQUEDA
• 1. La clave buscada se compara con la clave del nodo
raíz.
• 2. Si las claves son iguales, la búsqueda se detiene.
• 3. Si la clave buscada es mayor que la clave raíz, la
búsqueda se reanuda en el subárbol derecho. Si la clave
buscada es menor que la clave raíz, la búsqueda se
reanuda con el subárbol izquierdo.
ELIMINAR UN NODO
• 1. Buscar en el árbol para encontrar la posición del nodo
a eliminar.
• 2. Si el nodo a suprimir tiene menos de dos hijos, reajustar
los enlaces de su antecesor.
• 3. Si el nodo tiene dos hijos (rama izquierda y derecha),
es necesario subir a la posición que éste ocupa el dato
más próximo de sus subárboles (el inmediatamente
superior o el inmediatamente inferior) con el fin de
mantener la estructura de árbol binario de búsqueda.
TAREA
Crear un programa que tomando como base una
expresión y pueda generar un árbol de Expresiones
de forma grafica.

Fecha de Entrega: Una semana Después del Primer


Parcial

You might also like