Download - 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.