Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/06/2013, 20:43
ElPatoGarrido
 
Fecha de Ingreso: noviembre-2011
Mensajes: 50
Antigüedad: 12 años, 5 meses
Puntos: 3
Pregunta ABB - Arbol Binario de Busqueda (Funcion Insertar Iterativo)

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 original
  1. void insertar(nodo *&arbol, int valor) {   
  2.     if (!arbol) {
  3.         cout << "raiz nula";
  4.         arbol = new nodo;
  5.         arbol->dato = valor;
  6.         arbol->izq = arbol->der = NULL;
  7.     }
  8.     else {
  9.         nodo *aux = arbol;
  10.        
  11.         while (aux)
  12.             if (valor < aux->dato)
  13.                 aux = aux->izq;
  14.             else if (valor > aux->dato)
  15.                 aux = aux->der;
  16.        
  17.         aux = new nodo;
  18.         aux->dato = valor;
  19.         aux->izq = aux->der = NULL;
  20.     }
  21. }

PD: La funcion recursiva es:
Código C++:
Ver original
  1. void insertar(nodo *&arbol, int valor) {
  2.     if (!arbol) {
  3.         arbol = new nodo;
  4.         arbol->dato = valor;
  5.         arbol->izq = arbol->der = NULL;
  6.     }
  7.     else if (valor < arbol->dato)
  8.         insertar(arbol->izq, valor);
  9.     else if (valor > arbol->dato)
  10.         insertar(arbol->der, valor);
  11. }