#include #include using namespace std; template class node { public: t dato; node * pson[2]; //2 punteros a sus hijos node(t d) { dato = d; pson[0] = pson[1] = NULL; } }; template class binary_tree { node * proot; public: binary_tree() { proot = NULL; } void add (t dat) { node **p ; if (find(dat,p)) return; *p = new node(dat); } bool find(t dat,node ** &p) { p =&proot; while(*p) { if((*p)->dato==dat)return true; p= &((*p)->pson[(*p)->dato * p = proot ) { if(!p) return; cout<dato<pson[0]); preorden(p->pson[1]); } };