Download - Grafos 9.3 2016
Sección 9.3
Recorrido en Árboles
Tomado de Matemáticas Discretas y sus Aplicaciones. Rosen
Esteban Andrés Díaz Mina
Introducción
Los árboles ordenados etiquetado (AOE) son muyusados para almacenar información.
Se requiere entonces un procedimiento que permitavisitar cada vértice de un AOE para acceder a losdatos. Describiremos varios algoritmos importantespara visitar todos los vértices de este tipo de árboles.Un AOE puede también ser usado para representarvarios tipos de expresiones, tales como expresionesaritméticas que involucra números, variables yoperadores.
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.
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.
Definición 1
Ejemplo Recorrido Preorden
Ejemplo Recorrido Preorden
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.
Definición 2
Ejemplo Recorrido Inorden
Ejemplo Recorrido Inorden
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.
Definición 3
Ejemplo Recorrido Postorden
Ejemplo Recorrido Postorden
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.
Ejemplo
La forma prefija de una expresión se obtienecuando se recorre en preorden. Una expresiónen esta forma es evaluada de derecha aizquierda, ejecutando la correspondienteoperación con los dos operandos que siguen aloperador
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
Ejemplo
+ - * 2 3 5 / ↑ 2 3 4
+ - * 2 3 5 / 8 4
+ - * 2 3 5 / 8 4 Dibujar el arbol
+ - * 2 3 5 2
+ - * 2 3 5 2
+ - 6 5 2
+ - 6 5 2
+ 1 2
3
Ejemplo
+ - ↑ 3 2 ↑ 2 3 / 6 – 4 2
+ - ↑ 3 2 ↑ 2 3 / 6 2
+ - ↑ 3 2 ↑ 2 3 / 6 2
+ - ↑ 3 2 ↑ 2 3 3
+ - ↑ 3 2 ↑ 2 3 3
+ - ↑ 3 2 8 3
+ - ↑ 3 2 8 3
+ - 9 8 3
+ - 9 8 3
+ 1 3
4
Ejemplo
La forma postfija de una expresión se obtienecuando se recorre en postorden. Una expresiónen esta forma es evaluada de izquierda aderecha ejecutando la operación quecorresponda cuando un par de operadores sonseguidos por un operador
Ejemplos ¿Cuáles son los valores de lassiguientes expresiones postfija?
1. 7 2 3 * - 4 ↑ 9 3 / + Sol. 4
2. 9 3 / 5 + 7 2 - * Sol. 40
Ejemplo
7 2 3 * - 4 ↑ 9 3 / +
7 2 3 * - 4 ↑ 9 3 / +
7 6 - 4 ↑ 9 3 / +
7 6 - 4 ↑ 9 3 / +
1 4 ↑ 9 3 / +
1 4 ↑ 9 3 / +
1 9 3 / +
1 9 3 / +
1 3 +
4
Ejemplo
9 3 / 5 + 7 2 - *
9 3 / 5 + 7 2 - *
3 5 + 7 2 - *
3 5 + 7 2 - *
8 7 2 - *
8 7 2 - *
8 5 *
40