[Noti-aed] Ejercicio buildBT - TPLR - Ramiro Ibarra
Ramiro Ibarra
rami.ibarra47 en gmail.com
Mar Nov 21 16:27:52 -03 2023
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://venus.santafe-conicet.gov.ar/pipermail/noti-aed/attachments/20231121/9c05693d/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: Ibarra Ramiro
int DNI=44180987;
int cant_hijos(tree<int> &T,tree<int>::iterator it){
int hijos=0;
tree<int>::iterator c=it.lchild();
while(c!=T.end()){
hijos++;
c=c.right();
}
return hijos;
}
bool es_binario(tree<int> &T,tree<int>::iterator it){
if(it==T.end());
if(cant_hijos(T,it) > 2) return false;
tree<int>::iterator c=it.lchild();
while(c!=T.end()){
if(!es_binario(T,c)) return false;
c++;
}
return true;
}
void buildBT(tree<int> &T, btree<int> &BT, tree<int>::iterator it_T, btree<int>::iterator it_BT){
if(it_T==T.end()) return;
it_BT = BT.insert(it_BT,*it_T);
tree<int>::iterator cT = it_T.lchild();
if (cT!=T.end()) {
buildBT(T,BT,cT,it_BT.left());
cT++;
buildBT(T,BT,cT,it_BT.right());
}
}
void buildBT(tree<int> &A, btree<int> &BT) {
BT.clear();
if(!es_binario(A,A.begin())) return;
buildBT(A,BT,A.begin(),BT.begin());
}
//---:---<*>---:---<*>- FINALIZA CODIGO FUNCION --:---<*>---:---<*>---:---<*>
int main() {
Eval ev;
int vrbs=0;
ev.eval<1>(buildBT,vrbs);
return 0;
}
Más información sobre la lista de distribución Noti-AED