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 .
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 ^
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) )
}
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

Ejercicio ÁRBOL DE EXPRESIONES ARITMÉTICAS

  • 1.
    ESTRUCTURAS DE DATOS ÁRBOLDE 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 escribiruna 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 eloperando: ( 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 nodocorresponde 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