Abb recorrido
Click here to load reader
description
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:9. Evaluar la expresión.10. 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: +(positivo), - Negativo *, /, % +, -
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.
¢ Identificadores: Secuencia se caracteres, letras, dígitos y subrayados.
¢ Palabras reservadas (keyword, reserved word): Característica del lenguaje C asociada con un significado especial.
¢ Signos de puntuación, separadores, comentarios.¢ 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.