Ayuda con la implementación en lenguaje C de algoritmos de búsqueda para inteligencia artificial

Para finalizar la materia de Inteligencia Artificial en la universidad me piden programar en este lenguaje (C)Un Algoritmo de Búsqueda a Lo Ancho, Uno de Búsqueda por Profundidad y otro por Escalada simple, la cuestión es que no se programar y pues si no los entrego repruebo, y los cuates no los quieren pasar así que necesito su ayuda ahora más que nunca... Helpme...¡
1

1 respuesta

1
Respuesta de
Si no sabes programar creo que estas frito... Pero de todas maneras puedo ayudarte un poco. La cuestión es que tienes que haber listas doblemente enlazadas, tienes que definir el nodo como:
struct nodos
{
nodos *hijo;
nodos *hermano;
} nodo;
Así, sabes cual es el nodo hijo y uno de sus hermanos, por ejemplo, el nodo "raiz" (raíz del árbol) no tiene padre, entonces apunta a NULL, y tampoco tiene hermanos así es que también apunta a NULL, si tiene un hijo, *hijo apunta al primer hijo a la izquierda. Por ejemplo, la primera rama a la izquierda tendría al padre "raiz" y su hermano seria la rama siguiente a la derecha de este. Cuando ya has conseguido construir el árbol, recorrerlo en todas direcciones es sencillo. Si vas a lo ancho, partes del nodo raíz, ves cual es su hijo, y sabrás cual es su hermano (esto se hace con una función recursiva), luego tomas ese hermano y realizas la misma operación. Cuando el nodo no tenga hermanos (*hermano apunta a NULL) se ha acabado el nivel, y continuas con el hijo del primer nodo del nivel.
Si quieres profundidad, partes del nodo raíz, tomas al primer hijo, y de ahí más tomando el hijo de los siguientes hijos. Cuando ya no queden hijos (hijo apunta a NULL), tomas el hermano del ultimo hijo que analizaste y repites la operatoria.
Espero haberte ayudado, si no entiendes lo que te explique, necesitas asesorarte por alguien que sepa del tema, por ultimo tendrías que comprar el código. Suerte
Perdón por no finalizar tu respuesta, creí que sino había dudas pues pa´que molestar al experto, pero bueno, gracias y ojala pueda seguirte consultando. Atentamente. Juan.
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje
¿No es la respuesta que estabas buscando? Puedes explorar otras preguntas del tema C y C++ o hacer tu propia pregunta: