[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