[Noti-aed] listab.cpp tpl3 Cordini
Juan Cordini
juanbcordini en gmail.com
Jue Nov 9 19:11:36 -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/554e5bcd/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;
//---:---<*>---:---<*>---:---<*>---:---<*>---:---<*>
///Auxiliar
void listab(btree<int> B, btree<int>::iterator it, list<int> &abpos, list<int> &val, int pos) {
if (it == B.end()) {
return; // Nodo Lambda, no se hace nada
}
abpos.push_back(pos); // Agrega la posición al final de la lista abpos
val.push_back(*it); // Agrega el valor al final de la lista val
// Propaga la recursión a los hijos
listab(B, it.left(), abpos, val, 2 * pos + 1); // Hijo izquierdo
listab(B, it.right(), abpos, val, 2 * pos + 2); // Hijo derecho
}
///Wrapper
void listab(btree<int> &B, list<int> &abpos, list<int> &val) {
// Inicia la recursión desde la raíz del árbol (posición 0)
listab(B, B.begin(), abpos, val, 0);
}
///Auxiliar
btree<int>::iterator insertab_recursive(btree<int>::iterator it, list<int> &pos, list<int> &val, int current_pos) {
if (pos.empty() || val.empty()) {
return it;
}
// Obtener la posición y el valor actuales
int target_pos = pos.front();
int target_val = val.front();
if (current_pos == target_pos) {
*it = target_val; // Actualizar el valor en la posición actual
pos.pop_front();
val.pop_front();
}
// Propagar la recursión a los hijos izquierdo y derecho
insertab_recursive(it.left(), pos, val, 2 * current_pos + 1); // Hijo izquierdo
insertab_recursive(it.right(), pos, val, 2 * current_pos + 2); // Hijo derecho
return it;
}
///Wrapper
void insertab(btree<int> &B, std::list<int> &pos, list<int> &val) {
// Inicia la recursión desde la raíz del árbol (posición 0)
insertab_recursive(B.begin(), pos, val, 0);
}
//---:---<*>---:---<*>- FINALIZA CODIGO FUNCION --:---<*>---:---<*>---:---<*>
int main() {
Eval ev;
int vrbs=0;
ev.eval<1>(listab,vrbs);
ev.evalr<1>(listab,12345,vrbs);
return 0;
}
Más información sobre la lista de distribución Noti-AED