2
« en: Sábado 27 de Diciembre de 2008, 23:45 »
saludos soy nuevo en el foro, para ver quien me ayuda con arboles binarios , bueno estoy confundido en como hacer el metodo insertar de manera recursiva, los nodos tengo que hacerlos como clases y no como struct, entiendo que al metodo insertar tengo que pasarle un puntero al nodo raiz pero como lo hago o deberia pasar el arbol?,gracias de antemano
#include<iostream>
using namespace std;
template<class Tipo> class arbol;
template<class Tipo>
class Nodo{
//Atributos
private:
Tipo clave;
Nodo<Tipo> *izquierdo;
Nodo<Tipo> *derecho;
//metodo constructor
public:
Nodo(){
izquierdo=derecho=NULL;
}
friend class arbol<Tipo>;
};
template<class Tipo>
class arbol{
//atributos
private:
Nodo<Tipo> *raiz;
Nodo<Tipo> *actual;
//metodo constructor
public:
arbol(){
raiz=NULL;
actual=NULL;
}
//metodos
// ~arbol();
bool Esvacio();
void Insertar(arbol **,Tipo);
};
template<class Tipo>
void arbol<Tipo>::Insertar(arbol **a,const Tipo dato){
if(*a==NULL){
*a= new Nodo<Tipo>();
*a->clave=dato;
}
else if((*a)->clave<dato)
Insertar(&(*a)->derecho,dato);
else if((*a)->clave>dato)
Insertar(&(*a)->izquierdo,dato);
}
int main(){
arbol<int> tree;
tree.Insertar(&tree,8);
system("PAUSE");
return 0;
}