[Noti-aed] createab.cpp Cordini
Juan Cordini
juanbcordini en gmail.com
Jue Nov 9 19:28:02 -03 2023
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://venus.santafe-conicet.gov.ar/pipermail/noti-aed/attachments/20231109/36c67e8b/attachment.html>
------------ próxima parte ------------
#define USECHRONO
#undef HAVE_MPI
#include "eval.hpp"
#include <cassert>
#include <climits>
#include <cstdlib>
#include <stack>
using namespace aed;
using namespace std;
//---:---<*>---:---<*>- COMIENZA CODIGO FUNCION --:---<*>---:---<*>---:---<*>
// COMPLETAR DNI y NOMBRE AQUI:
// Nombre: Cordini Juan Bautista
int DNI=45344874;
void createab(btree<int> &B, btree<int>::iterator n, list<int> &abpos, list<int> &vals) {
if (abpos.empty() || vals.empty()) {
return; // Si alguna de las listas está vacía, salir.
}
int pos = abpos.front(); // Obtener el valor pos de la lista abpos
abpos.pop_front(); // Eliminar el valor pos de la lista abpos
int val = vals.front(); // Obtener el valor val de la lista vals
vals.pop_front(); // Eliminar el valor val de la lista vals
n = B.insert(n,val); // Insertar el valor en el nodo actual (refrescar el iterador)
// Crear recursivamente los árboles izquierdo y derecho.
if (!abpos.empty() && abpos.front() == 2 * pos + 1) {
createab(B, n.left(), abpos, vals); // Crear el subárbol izquierdo
}
if (!abpos.empty() && abpos.front() == 2 * pos + 2) {
createab(B, n.right(), abpos, vals); // Crear el subárbol derecho
}
}
///Wrapper
void createab(btree<int> &B, list<int> &abpos, list<int> &vals) {
createab(B, B.begin(), abpos, vals);
}
//---:---<*>---:---<*>- FINALIZA CODIGO FUNCION --:---<*>---:---<*>---:---<*>
int main() {
Eval ev;
int vrbs=0;
ev.eval<1>(createab,vrbs);
// ev.evalr<1>(createab,12345,vrbs);
return 0;
}
Más información sobre la lista de distribución Noti-AED