Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Ejercicio ÁRBOL DE EXPRESIONES ARITMÉTICAS
1. ESTRUCTURAS DE DATOS
ÁRBOL DE EXPRESIONES ARITMÉTICAS
Integrante:
Campos Merchán Luis Xavier C.I.: 0916325178
12/04/2014
DOCENTE:
BÁRBARA BRICEÑO
Diseñar una operación de un árbol de expresiones aritméticas .
2. 1
Diseñar y escribir una operación que, dado un iterador de un árbol de
expresiones aritméticas, evalúe la rama del árbol que comienza en el nudo
actual de ese iterador
Este árbol básicamente permitirá introducir y evaluar la siguiente expresión
aritmética:
(2^sin(y+x) – ln (x))
Expresión representada por el árbol
Paso
Pila de operadores (la
cima está a la
Izquierda)
Pila de Nodos (la
cima está a la
Izquierda)
Árbol de expresiones
1 Lee el operando: 2 Vacío 2
2
Lee el operando: ^ ^ 2
3 Lee el operador: sin ^ sin 2
4
Lee el operador: ( ^ sin( 2
5 Lee el operador: y ^ sin( 2 y
6
Lee el operador: + ^ sin(+ 2 y
7
Lee el operador: x ^ sin(+ 2 y x
8
Lee el operador: )
^ sin(+)
^ sin 2 +
9
Lee el operador: - ^ sin - 2 ^
10
Lee el operador: in in 2 ^
3. 2
11 Lee el operando: ( in ( 2^
12 Lee el operando: x in (x 2 ^ x
13 Lee el operador: )
in (x)
in
2 ^ x
14
No quedan elementos en
la expresión
in
(vacía)
-
Luego de que se tiene el árbol conformado, la evaluación de la expresión contenida
se realiza mediante un procedimiento recursivo.
El algoritmo en seudocódigo del nodo EVALUAR es el siguiente:
resultado = evaluar (raiz_arbol)
evaluar (nodo)
{
Si el nodo corresponde a un operando entonces : {
Se retorna el valor del operando
}
Si el nodo corresponde a un operador unario A entonces: {
Se retorna: A( evaluar(nodo->rama_izquierda) )
}
4. 3
Si el nodo corresponde a un operador binario X entonces: {
Se retorna: evaluar(nodo->rama_izquierada) X evaluar(nodo->rama_derecha)
}
}
LINK SLIDESHARED:
http://www.slideshare.net/xaviercamposm/ejercicio-33457408