27/11/2011, 23:06
|
| | Fecha de Ingreso: noviembre-2011 Ubicación: Murcia
Mensajes: 11
Antigüedad: 13 años 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!!!! |