#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: Gonzalo Cardin int DNI=43827109; //---:---<*>---:---<*>---:---<*>---:---<*>---:---<*> void insertab(btree&B,list&pos,list&val,btree::iterator itB){ if(pos.empty()) return; ///En la función recursiva, si la lista abpos está vacía, salir. ///Caso contrario extraer los valores pos y val del comienzo de las listas (eliminarlos). int p = pos.front(); int v = val.front(); itB = B.insert(itB,v); ///Insertar el valor val en el nodo actual (refrescar el iterador). ///(eliminarlos). val.pop_front(); pos.pop_front(); ///Ahora hay que crear (recursivamente) los árboles izquierdo y derecho. if(!pos.empty() && pos.front() == (2*p+1)) insertab(B,pos,val,itB.left());///Si la lista NO está vacía y si el valor en el frente de abpos es 2*pos+1 llamar recursivamente sobre el hijo izquierdo para crear su subárbol. if(!pos.empty() && pos.front() == (2*p+2)) insertab(B,pos,val,itB.right()); ///Si la lista NO está vacía y si el valor en el frente de abpos es 2*pos+2 llamar recursivamente sobre el hijo derecho para crear su subárbol. } void insertab(btree &B, list &pos,list &val) { insertab(B,pos,val,B.begin()); } //---:---<*>---:---<*>- FINALIZA CODIGO FUNCION --:---<*>---:---<*>---:---<*> int main() { Eval ev; int vrbs=0; ev.eval<1>(insertab,vrbs); return 0; }