Una lección de programación en C++. Por favor, denme algún consejo, hermanos.
Materiales de referencia/honker/archive/2007/04/28/23147.aspx
Si le resulta útil, bienvenido a adoptarlo~~~
ruta vacía (void)/*función laberinto*/
{
posición del elemento
int i,row,col,next_row,next_col,dir, top;
_Bool encontrado = 0;
mark[1][1] = 1,top = 0;/*Inicializar elementos de matriz de marcas y apilar*/
pila [0].fila = 1,pila[0].col = 1,pila[0].dir = 0
while(top > -1 && !found)
;{
position = eliminar(&top); /*Eliminar el elemento superior de la pila,*/
fila = position.row /*Usar fila de variables intermedias, col, dir para esperar el juicio */
col = position.col;
dir = position.dir
while(dir < 4 && !found; )
{
next_row = fila + mover[dir].vert
next_col = col + mover[dir].horiz; p> if(next_row == EXIT_ROW && next_col == EXIT_COL)
encontrado = 1;
else if(!maze[next_row][next_col] && !mark[next_row][ next_col])/*Juzgar Si un paso es posible y no se ha dado, empújelo a la pila*/
{
mark[next_row][next_col] = 1; /p>
posición.fila = fila
posición.col = col
posición.dir = ++dir
agregar(⊤ ,position);/*Si es razonable, empújelo a la pila* /
row = next_row;/*continuar bajando*/
col = next_col;dir = 0; /p>
}
más
dir++;/*Cuando dir<4, cambia de dirección*/
}
if(found)/*Determinar si hay una salida*/
{
p>
printf("la ruta es:\n");
printf("fila col\n"); i = 0;i <= top;++i)
printf("%2d%5d",pila[i].fila,pila[i].col
printf("%2d% 5d\n",fila,col);
printf("%2d%5d\n",EXIT_ROW,EXIT_COL
} ); p>
}
}