Abb recorrido

13
Árboles binarios III Recorridos

Transcript of Abb recorrido

Page 1: Abb recorrido

Árboles binarios III

Recorridos

Page 2: Abb recorrido

Operaciones en árboles binarios

1. Determinar su altura.2. Determinar su número de elementos.3. Hacer una copia.4. Visualizar el árbol binario en pantalla o

imprimirlo.5. Determinar si dos árboles binarios son

idénticos.6. Eliminar el árbol.

Si es un árbol de expresión:1. Evaluar la expresión.2. Obtener la forma de paréntesis de la expresión

Page 3: Abb recorrido

Árboles de expresión

• Expresión: Secuencia de tokens*• Propiedades:

Cada hoja es un operando El nodo raiz o los nodos internos son

operadores. Los subárboles son subexpresiones

• Reglas de precedencia:1. +(positivo), - Negativo

2. *, /, %3. +, -

x

z

/

y -

*

Page 4: Abb recorrido

Ejemplos de precedencia

6 + 2 * 3 – 4 / 2 ) =

6 + 6 – 2 = 10

5 * 5 ( 5 – ( 6 – 2 ) – 1 ) =

25 ( 5 – 4 – 1 ) = 50

Reglas de precedencia:+(positivo), - Negativo*, /, %+, -

Page 5: Abb recorrido

Recorrido de un árbol

Al recorrer un árbol se debe visitar al nodo una sola vez.

Recorridos:

Pre orden (Preorder)En orden (Inorder)Post orden (Posorder)

Page 6: Abb recorrido

Token: componentes léxicos que siguen unas reglas prescritas.

a) Identificadores: Secuencia se caracteres, letras, dígitos y subrayados.

b) Palabras reservadas (keyword, reserved word): Característica del lenguaje C asociada con un significado especial.

c) Signos de puntuación, separadores, comentarios.

d) Operadores

Page 7: Abb recorrido

/* …. */

;

! % ^ & * ( ) - + { } ~

[ ] \ ´ : < > ? , . / “ “

Page 8: Abb recorrido

Operadores de asignación

Símbolo Uso Sentencia no abreviada

= a = b

*= a *= b a = a * b;

/= a /= b a = a / b;

%= a %= b a = a % b;

+= a += b a = a + b;

-= a -= b a = a – b;

Operadores aritméticos

Operador Operación Ejemplo

+ a + b Suma

- a – b Resta

* a * b Multiplicación

/ a / b División (cociente)

% a % b División (residuo)

Operadores relacionales

Símbolo Uso Significado

== a == b Igual a

!= a != b No igual a

> a > b Mayor que

< a < b Menor que

>= a >= b Mayor o igual que

<= a <= b Menor o igual que

Operadores lógicos

Operador Operación Ejemplo

! Negación !( a >= b)

&& Y a > b && i > j

|| O a > b || i > j

Page 9: Abb recorrido

Preorden

La raíz se procesa antes que el hijo izquierdo y el hijo derecho.

B

D E

C

F G

A

B

D E

C

F G

A

Page 10: Abb recorrido

Enorden

Primero se procesa el hijo izquierdo, luego la raíz y al final el hijo derecho.

B

D E

C

F G

A

B

D E

C

F G

A

Page 11: Abb recorrido

Postorden

La raíz se procesa después que el hijo izquierdo y el hijo derecho.

B

D E

C

F G

A

B

D E

C

F G

A

Page 12: Abb recorrido

a *

b

+

c

+

d

-

a *

b

+

c

+

d

-

x

z

/

y -

*

a*

b

+

-

**

y

/

xcd c+

cd ba

*

b

+

-

a/

cd a*

cyx

Page 13: Abb recorrido

I. Las siguientes expresiones están en orden. Obtener sus árboles de expresión.

(a * b) + (c / d) ((a + b) +c) +d -a + (x + y) / b * (c * a) (a + b) / (c – d * e) + e + y * (h / a) - x – y * z + (a + b + c / d * e) (a + b) > (c - e) || a<f && (x<y || y>z)

II. Obtener las expresiones preorden y postorden para los primeros tres incisos del ejercicio anterior.