C/Visual C - AYUDA RECORRIDO ARBOLES

 
Vista:

AYUDA RECORRIDO ARBOLES

Publicado por Chicharro (2 intervenciones) el 18/05/2003 14:01:32
Tengo n problema, a veces me funciona y a veces si:

Consiste en pasar por valor el arbol y un dato a buscar (no esta ordenado y por tanto tengo que recorrer todo el arbol)

Alguien me puede explicar que le ocurre a este algoritno (si hay solucion tab me interesa). A continuacion el algoritmo:

if (encuentro el dato O el nodo esta vacio)
{
retorno(la raiz vacia o donde se encuentra el dato a buscar)
}
sino
{
buscar(arbol->izq, dato a buscar);
buscar(arbol->dch, dato a buscar);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:AYUDA RECORRIDO ARBOLES

Publicado por Juanin (2 intervenciones) el 18/05/2003 14:14:51
Vale soy un pringao, creo que soy un poco lelo. Decirme si es verdad que le ocurre esto. Si recorro una rama del arbol, puede que no encuentre el dato y la raiz se encuentre en un nodo vacio. Por tanto la condicion del arbol vacio hay que plantearla de manera diferente, cierto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA RECORRIDO ARBOLES

Publicado por chuidiang (677 intervenciones) el 19/05/2003 07:32:40
En la parte del sino debes verificar el resultado que te devuelven ambas llamadas.
Si ambas devuelven NULL, quiere decir que no se ha encontrado, asi que debes devolver NULL.
Si una de ellas devuelve el nodo, debes devolver el nodo

Más o menos sería

sino
{
resultado1 = busca (izq...)
if (resultado1 != NULL)
return resultado1

resultado2 = busca (dcha...)
if (resultado2 != NULL)
return resultado2

return NULL
}

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar