1. Sección 9.3
Recorrido en Árboles
Tomado de Matemáticas Discretas y sus Aplicaciones. Rosen
Esteban Andrés Díaz Mina
2. Introducción
Los árboles ordenados etiquetado (AOE) son muy
usados para almacenar información.
Se requiere entonces un procedimiento que permita
visitar cada vértice de un AOE para acceder a los
datos. Describiremos varios algoritmos importantes
para visitar todos los vértices de este tipo de árboles.
Un AOE puede también ser usado para representar
varios tipos de expresiones, tales como expresiones
aritméticas que involucra números, variables y
operadores.
3. Algoritmos de Recorridos
Los procedimientos para sistemáticamente visitar
cada vértice de un AOE son llamados algoritmos de
recorridos. Describiremos tres de los algoritmos
más frecuentemente usados, llamados recorrido
preorden, recorrido inorden y recorrido postorden.
Cada uno de estos algoritmos se define
recursivamente.
4. Definición 1
Sea T un AOE con raíz r.
Si T contiene únicamente a r, entonces r es el
recorrido preorden de T.
De otra manera, suponga que T1, T2, ... , Tn son los
subarboles de r de izquierda a derecha en T.
El recorrido preorden comienza visitando r.
Luego continua recorriendo T1 en preorden, entonces
T2 en preorden y así sucesivamente, hasta que Tn se
haya recorrido en preorden.
8. Definición 2
Sea T un AOE con raíz r.
Si T contiene únicamente a r, entonces r es el
recorrido inorden de T.
De otra manera, suponga que T1, T2, ... , Tn son los
subarboles de r de izquierda a derecha en T.
El recorrido inorden comienza recorriendo a T1 en
inorden, entonces visita a r.
Luego continua recorriendo a T2 en inorden, a T3 en
inorden y así sucesivamente, hasta que Tn se haya
recorrido en inorden.
12. Definición 3
Sea T un AOE con raíz r.
Si T contiene únicamente a r, entonces r es el
recorrido postorden de T.
De otra manera, suponga que T1, T2, ... , Tn son los
subarboles de r de izquierda a derecha en T.
El recorrido postorden comienza recorriendo T1 en
postorden, entonces T2 en postorden,..., entonces Tn
en postorden y finalmente visita a r.
16. Notación Infija, Prefija y Postfija
Se pueden representar expresiones complejas, tales
como las expresiones aritméticas, mediante árboles
ordenados con raíz. Por ejemplo, consideremos la
representación de la expresión aritmética que
involucra los operadores + (suma), - (resta),
* (multiplicación), / (división) y (exponenciación).
Se usan los paréntesis para indicar el orden de las
operaciones. Se puede utilizar un árbol ordenado con
raíz para representar dichas expresiones, en el que
los vértices internos representan operadores y las
hojas representan los números. Cada operador actúa
sobre sus subarboles izquierdo y derecho.
17. Ejemplo
La forma prefija de una expresión se obtiene
cuando se recorre en preorden. Una expresión
en esta forma es evaluada de derecha a
izquierda, ejecutando la correspondiente
operación con los dos operandos que siguen al
operador
Ejemplos: ¿Cuales son los valores de las
siguientes expresiones prefijas?
1. + - * 2 3 5 / ↑ 2 3 4 Sol. 3
2. + - ↑ 3 2 ↑ 2 3 / 6 – 4 2 Sol. 4
20. Ejemplo
La forma postfija de una expresión se obtiene
cuando se recorre en postorden. Una expresión
en esta forma es evaluada de izquierda a
derecha ejecutando la operación que
corresponda cuando un par de operadores son
seguidos por un operador
Ejemplos ¿Cuáles son los valores de las
siguientes expresiones postfija?
1. 7 2 3 * - 4 ↑ 9 3 / + Sol. 4
2. 9 3 / 5 + 7 2 - * Sol. 40