Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/11/2011, 23:06
mgb89
 
Fecha de Ingreso: noviembre-2011
Ubicación: Murcia
Mensajes: 11
Antigüedad: 12 años, 6 meses
Puntos: 0
Pasar puntero en función recursiva

Hola, estoy programando un árbol AVL. Cuando quiero insertar un nuevo elemento llamo a la función "insertar" que tiene como parámetros el elemento a insertar y un puntero al nodo raíz a partir del cual buscar su posición dentro del árbol. El problema es que solo se me inserta un elemento, el que está apuntado por el puntero raíz y cuando intento insertar más no lo hace.

El tipo nodo lo tengo así:
class nodo{
string clase;
nodo *izq, *der;
}

El puntero raiz lo tengo declarado así y al principio apunta a NULL:
nodo* raiz;

La cabecera de mi función insertar es así:
void insertar(nodo* a, string clave);

Y cuando de nuevo llamo recursivamente a insertar, lo hago, si por ejemplo es al hijo izquierdo del nodo actual, así:
insertar((*a).izq, clave);

¿Dónde puede estar el fallo? ¿Es algo relacionado con el paso por referencia de los punteros? ¿Cómo tendría que declararlos?

Gracias!!!!