algoritmos de busquedad en I.A.
necesito saber como realizar la busquedas en anchura y profundidad sobre arboles y nodos. Agradeceria ejemplos de uso
Puf la verdad es que es una pregunta muy larga de contestar pero intentare contestártela lo mejor que sepa o pueda.
En principio lo que te voy a contar no tiene por que ser algo de Java sino que se puede aplicar a cualquier lenguaje de programación.
Para el recorrido en anchura necesitaras una cola pero por desgracia java no la implementa, asà que deberás hacértela tu, para ello yo te recomiendo que utilices una LinkedList y que añadas por un extremo y saques por el otro eso lo eliges a tu gusto.
El proceso en algoritmo seria algo asÃ
inicializar cola
encolar nodo raÃz
hasta cola vacÃa
extraer nodo
recuperar hijos y encolarlos
tramitar nodo
se acabo
Recuperar hijos y encolar puede ir en ese orden o al revés eso depende de tu problema en concreto.
En cuanto al recorrido en profundidad supongo que estarás trabajando con arboles con mas de dos hijos asà que existen do formas de hacerlos, se llaman en preorden y postorden son muy similares y solo cambia el orden en el que se tramita el nodo y se visita a los hijos. te pongo el algoritmo de los dos
recorrido en preorden
tramitar nodo raÃz
mientras queden hijos
llamar recursivamente a cada uno de los hijos
recorrido en postorden
mientras queden hijos
llamar recursivamente a cada uno de los hijos
tramitar nodo raÃz
Espero que te haya servido de ayuda.
En cuanto a ejemplos de uso siento decirte que creo que no hay nada como pasarse 2 horas delante de la pantalla sin saber donde esta el fallo, por que vas a aprender mucho más asà que si yo te lo diera todo hecho, y que conste que con mis primeros intentos con java hubiera dado lo que fuera por que me lo hicieran, de todas formas si tienes algún problema con el código, mándamelo me dices por que crees que falla y le echare un vistazo.
En principio lo que te voy a contar no tiene por que ser algo de Java sino que se puede aplicar a cualquier lenguaje de programación.
Para el recorrido en anchura necesitaras una cola pero por desgracia java no la implementa, asà que deberás hacértela tu, para ello yo te recomiendo que utilices una LinkedList y que añadas por un extremo y saques por el otro eso lo eliges a tu gusto.
El proceso en algoritmo seria algo asÃ
inicializar cola
encolar nodo raÃz
hasta cola vacÃa
extraer nodo
recuperar hijos y encolarlos
tramitar nodo
se acabo
Recuperar hijos y encolar puede ir en ese orden o al revés eso depende de tu problema en concreto.
En cuanto al recorrido en profundidad supongo que estarás trabajando con arboles con mas de dos hijos asà que existen do formas de hacerlos, se llaman en preorden y postorden son muy similares y solo cambia el orden en el que se tramita el nodo y se visita a los hijos. te pongo el algoritmo de los dos
recorrido en preorden
tramitar nodo raÃz
mientras queden hijos
llamar recursivamente a cada uno de los hijos
recorrido en postorden
mientras queden hijos
llamar recursivamente a cada uno de los hijos
tramitar nodo raÃz
Espero que te haya servido de ayuda.
En cuanto a ejemplos de uso siento decirte que creo que no hay nada como pasarse 2 horas delante de la pantalla sin saber donde esta el fallo, por que vas a aprender mucho más asà que si yo te lo diera todo hecho, y que conste que con mis primeros intentos con java hubiera dado lo que fuera por que me lo hicieran, de todas formas si tienes algún problema con el código, mándamelo me dices por que crees que falla y le echare un vistazo.
te escribo para pedirte un favor,me gustaria que me enviaras todos loprogramas que tengas refeernte a arboles ya que se me dificulta te lo agradeceria mucho que me lo envies a sig correo [email protected]
