Este artículo describe la simple implementación del problema de los agricultores que cruzan el río en Java. Compártelo para su referencia, como sigue:
1. Descripción del problema
El viejo quiere cortar peces, perros y gatos a través del río al otro lado. Hay un bote que solo puede sentarse a una persona. El viejo solo puede traer un animal para cruzar el río cada vez. Cuando el viejo esté fuera, el perro morderá al gato y el gato comerá pescado. ¿Cómo se cruza el río en secuencia?
2. Implementar código
Paquete de demostración; import java.util.ArrayList; import java.util.list; public class CrossRiver {list <String> listThis = new ArrayList <String> (); List <String> listThat = new ArrayList <String> (); /*boolean thisFlag = true; boolean thatflag = false;*/ public CrossRiver () {listthis.add ("perro"); listthis.add ("pez"); listthis.add ("gato"); // listthis.add ("personas"); } public boolean isSafe (@suppleswarnings ("rawTypes") List List) {if (list.contains ("pesc") && list.contains ("cat") || list.contains ("cat") && list.contains ("dog")) {return false; } else {return true; }} public void thattothat () {string str = listthis.get (0); list this.remove (str); if (this.issafe (listThis)) {System.out.println ("El agricultor toma" + str + "de esta orilla a la otra orilla"); System.out.println ("This Shore" + ListThis + "/B" + "Out Other Shore" + ListThat); System.out.println (); list that.add (str); thattothis (); } else {listthis.add (str); thattothat (); }} public void thattothis () {if (listThis.isEmpty ()) {System.out.println ("esta costa" + listThis + "/b" + "Out Other Shore" + listThat); devolver; } if (issafe (listthat)) {system.out.println ("El agricultor va de la otra orilla a esta orilla"); System.out.println ("This Shore" + ListThis + "/B" + "Outside Shore" + list that); System.out.println (); thattothat (); } else {String str = listThat.get (0); listthat.remove (0); if (issafe (listthat)) {System.out.println ("El agricultor toma" + str + "de la otra orilla a esta orilla"); System.out.println ("This Shore" + ListThis + "/B" + "Outside Shore" + list that); System.out.println (); listthis.add (str); thattothat (); } else {listthat.add (str); thattothis (); }} public static void main (string [] args) {System.out.println ("Wulin.com Resultados de la prueba:"); System.out.println (); nuevo CrossRiver (). ThatTothat (); }}Resultados de ejecución:
Para obtener más información sobre los algoritmos de Java, los lectores interesados en este sitio pueden ver los temas: "Estructura de datos Java y tutorial de algoritmo", "Resumen de las puntas de nodo de operación de Java DOM", "Resumen de Java Archivo y TIPS de operación de directorio" y "Summary of Java Cache Operation Tips" TIPS ""
Espero que este artículo sea útil para la programación Java de todos.