Abb recorrido

Post on 04-Aug-2015

228 views 2 download

Transcript of Abb recorrido

Árboles binarios III

Recorridos

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

Á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 -

*

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*, /, %+, -

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)

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

/* …. */

;

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

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

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

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

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

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

a *

b

+

c

+

d

-

a *

b

+

c

+

d

-

x

z

/

y -

*

a*

b

+

-

**

y

/

xcd c+

cd ba

*

b

+

-

a/

cd a*

cyx

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.