22
Sección 9.3 Recorrido en Árboles Tomado de Matemáticas Discretas y sus Aplicaciones. Rosen Esteban Andrés Díaz Mina

Grafos 9.3 2016

Embed Size (px)

Citation preview

Page 1: 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

Page 2: Grafos 9.3 2016

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.

Page 3: Grafos 9.3 2016

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.

Page 4: Grafos 9.3 2016

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.

Page 5: Grafos 9.3 2016

Definición 1

Page 6: Grafos 9.3 2016

Ejemplo Recorrido Preorden

Page 7: Grafos 9.3 2016

Ejemplo Recorrido Preorden

Page 8: Grafos 9.3 2016

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.

Page 9: Grafos 9.3 2016

Definición 2

Page 10: Grafos 9.3 2016

Ejemplo Recorrido Inorden

Page 11: Grafos 9.3 2016

Ejemplo Recorrido Inorden

Page 12: Grafos 9.3 2016

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.

Page 13: Grafos 9.3 2016

Definición 3

Page 14: Grafos 9.3 2016

Ejemplo Recorrido Postorden

Page 15: Grafos 9.3 2016

Ejemplo Recorrido Postorden

Page 16: Grafos 9.3 2016

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.

Page 17: Grafos 9.3 2016

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

Page 18: Grafos 9.3 2016

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

Page 19: Grafos 9.3 2016

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

Page 20: Grafos 9.3 2016

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

Page 21: Grafos 9.3 2016

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

Page 22: Grafos 9.3 2016

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