#define USECHRONO #undef HAVE_MPI #include "eval.hpp" #include #include #include #include using namespace aed; using namespace std; //---:---<*>---:---<*>- COMIENZA CODIGO FUNCION --:---<*>---:---<*>---:---<*> // COMPLETAR DNI y NOMBRE AQUI: // Nombre: Padró Santiago int DNI=44843361; //---:---<*>---:---<*>---:---<*>---:---<*>---:---<*> ///Funcion Auxiliar /*Escribimos una funcion recursiva con un argumento adicional del tipo iterador*/ void createab(btree &B, btree::iterator n, list &abpos, list &vals) { /*Para hacer el ejercicio podemos seguir paso a paso la ayuda que se nos da*/ if(abpos.empty()) return; /*Si la lista esta vacia salimos*/ int pos = abpos.front(); /*Extraemos la posicion del comienzo de la lista*/ abpos.pop_front(); /*La eliminamos*/ int valor = vals.front(); /*Extraemos el valor del comienzo de la lista*/ vals.pop_front(); /*Lo eliminamos*/ n = B.insert(n,valor); /*Refrescamos el iterador insertando el valor en el nodo actual*/ /*Si la lista no esta vacia y si el valor en el frente es de nos da una posicion impar*/ if(!abpos.empty() && abpos.front() == 2*pos+1) { createab(B, n.left(), abpos, vals); /*Llamamos recursivamente para crear el subarbol del hijo izquierdo*/ } /*Si la lista no esta vacia y si el valor en el frente es de nos da una posicion par*/ if(!abpos.empty() && abpos.front() == 2*pos+2) { createab(B, n.right(), abpos, vals); /*Llamamos recursivamente para crear el subarbol del hijo derecho*/ } } //---:---<*>---:---<*>---:---<*>---:---<*>---:---<*> ///Funcion Wrapper void createab(btree &B, list &abpos, list &vals) { createab(B, B.begin(), abpos, vals); /*Llamamos recursivamente a la funcion auxiliar*/ } //---:---<*>---:---<*>- FINALIZA CODIGO FUNCION --:---<*>---:---<*>---:---<*> int main() { Eval ev; int vrbs=0; ev.eval<1>(createab,vrbs); // ev.evalr<1>(createab,12345,vrbs); return 0; }