Hola, estaba estudiando la materia de ABB e intente llevar la funcion Insertar a una funcion que hiciera lo mismo de forma iterativa en ves de recursiva, asi que escribi el siguiente codigo, pero no me funciona y no veo donde esta el error, segun yo debiese funcionar.
Código C++:
Ver originalvoid insertar(nodo *&arbol, int valor) {
if (!arbol) {
cout << "raiz nula";
arbol = new nodo;
arbol->dato = valor;
arbol->izq = arbol->der = NULL;
}
else {
nodo *aux = arbol;
while (aux)
if (valor < aux->dato)
aux = aux->izq;
else if (valor > aux->dato)
aux = aux->der;
aux = new nodo;
aux->dato = valor;
aux->izq = aux->der = NULL;
}
}
PD: La funcion recursiva es:
Código C++:
Ver originalvoid insertar(nodo *&arbol, int valor) {
if (!arbol) {
arbol = new nodo;
arbol->dato = valor;
arbol->izq = arbol->der = NULL;
}
else if (valor < arbol->dato)
insertar(arbol->izq, valor);
else if (valor > arbol->dato)
insertar(arbol->der, valor);
}