Implementación Árbol de Expresión

Transcripción

Implementación Árbol de Expresión
Implementación de Árboles
Estructuras de Datos
Andrea Rueda
Pontificia Universidad Javeriana
Departamento de Ingeniería de Sistemas
Árbol de Expresión
Implementación
TAD Nodo de Expresión
●
●
Datos miembros:
–
dato del nodo.
–
clase del nodo (operando / operador).
–
apuntador a nodo (operando) izquierdo.
–
apuntador a nodo (operando) derecho.
Operaciones:
–
constructores, destructores.
–
asignar, obtener el dato o la clase del nodo.
–
asignar, obtener una referencia a nodo (operando).
NodoExpresion.h
class NodoExpresion {
protected:
std::string dato;
bool operando;
NodoExpresion *hijoIzq;
NodoExpresion *hijoDer;
public:
NodoExpresion();
NodoExpresion(std::string val);
NodoExpresion(std::string val, NodoExpresion *izq, NodoExpresion *der);
NodoExpresion.h
~NodoExpresion();
std::string obtenerDato();
void fijarDato(std::string val);
bool obtenerOperando();
void fijarOperando(bool clase);
NodoExpresion* obtenerHijoIzq();
NodoExpresion* obtenerHijoDer();
void fijarHijoIzq(NodoExpresion *izq);
void fijarHijoDer(NodoExpresion *der);
};
TAD Árbol de Expresión
●
Estado: conjunto mínimo de datos.
–
●
Referencia al nodo raíz.
Interfaz: comportamiento (operaciones).
–
constructores, destructores.
–
obtener, fijar el nodo raíz o el dato en la raíz.
–
verificación de árbol vacío.
–
llenar desde expresión posfija o prefija.
–
generar expresión prefija, infija o posfija.
ArbolExpresion.h
class ArbolExpresion {
protected:
NodoExpresion *raiz;
public:
ArbolExpresion();
~ArbolExpresion();
bool esVacio();
std::string datoRaiz();
NodoExpresion* obtenerRaiz();
void fijarRaiz(NodoExpresion *nraiz);
ArbolExpresion.h
void llenarDesdePrefija
(std::string &expresion);
void llenarDesdePosfija
(std::string &expresion);
std::string obtenerPrefija();
std::string obtenerInfija();
std::string obtenerPosfija();
int evaluar();
}; Referencias
●
L. Joyanes Aguilar, I. Zahonero. Algoritmos y
estructuras de datos: una perspectiva en C.
McGraw-Hill, 2004.

Documentos relacionados