Un trabajo semana2

Significado de las preguntas:
 las cosas tienen un mapa para encontrar papel de la hermana del mapa. Pantalla de mapa, 0 puede ir, no puede ir 1 representa la esquina superior izquierda es la entrada a la esquina inferior derecha es el papel de la hermana, estas dos posiciones para asegurar cero. Ahora que conocemos el mapa, y luego rellenarlo no es difícil encontrar el papel de la hermana, compila un programa, material de escritura para encontrar la ruta de papel hermana menor.
De entrada de entrada es una matriz de 5 x 5 en dos dimensiones, a sólo los dos números 0,1, posiciones de representación en la figura. Salida: una pluralidad de líneas de salida, representa el camino más corto desde la parte superior izquierda para bajar coordenadas esquina derecha secuencialmente pases, con formato como se muestra en la muestra. Garantizar que los datos tiene una solución única.
La entrada de la muestra
0. 1 0 0 0
0. 1 0. 1 0
0. 1 0. 1 0
0 0 0. 1 0
0. 1 0. 1 0
la Salida de muestra en
(0, 0)
(. 1, 0)
(2, 0)
(. 3, 0)
( 3, 1)
(3, 2)
(2, 2)
(1, 2)
(0, 2)
(0, 3)
(0, 4)
(1, 4)
(2, 4)
(3, 4)
( . 4 ,. 4)
coordenadas Pista (x, y) representa la columna de la x-y línea, fila, comienza numeración de las columnas de 0, y en la esquina superior izquierda como el origen.  
Nota además que, las coordenadas de la salida separada por comas deben ser un espacio.
ideas:
Definición de una estructura, que define dos coordenadas x, y. Cuando los recorridos verticales y horizontales más juez, x definido antes, Y por BFS funcionan, cambia las coordenadas, la definición de una matriz de marca de grabación a través de la fila, mientras que las coordenadas no tienen etiqueta para caminar y no fuera de la muralla y no, esto coordenadas de marcador y la operación de determinación del punto de empuje se continúa hasta que el destino venga. , ¿Son secuencial de salida por la pila de salida actúa menor punto de paso de coordenadas de almacenamiento.
Código:
#include
#include
#include
#include
#include
la using namespace std;
int A [6]. [6].;
Int disx [] = {1, -1,0,0.};
Int DISY [] = {0,0 , 1, -1};.
struct nodo
{
int X, Y;
};
el nodo precargado [6]. [6].;
BFS void ()
{
int VIS [6]. [6.] = {0};
el nodo nodo;
node.x 0 =; node.y = 0;
Queue Q;
q.push (Node);
VIS [0] [0] = 1;.
el tiempo (q.empty ()!)
{
el nodo q.front = ahora ();
Q. pOP ();
si (now.x4 && now.y4)
{
retorno;
}
For (int i = 0; i <4; i ++)
{
int newx = now.x + disx [i];
int Newy = now.y + disy [i];
node.x = newx; node.y = Newy;
si (newx> = 0 && newx <5 && Newy> = 0 && Newy <5 && vis [newx] [Newy] && un [newx] [Newy]!)
{
vis [newx] [Newy] = 1;
pre [newx] [Newy] = ahora;
q.push (nodo);
}
}
}
}
Int main ()
{
for (int i = 0; i <5; i ++)
for (int j = 0; j <5; j ++)
scanf ( "% d", & a [i] [j]) ;
BFS ();
pila s;
Nodo nodo;
node.x = 4; node.y = 4;
while (node.x = 0 || node.y = 0!)
{
s.push (nodo);

}
S.push (Nodo {0,0});
while (s.empty ()!)
{
nodo = s.top ();
s.pop ();
printf ( "(% d,% d) \ n", node.x, node.y);

}
return 0;

}

Se han publicado 19 artículos originales · ganado elogios 0 · Vistas 222

Supongo que te gusta

Origin blog.csdn.net/weixin_45117273/article/details/104738401
Recomendado
Clasificación