迷宫问题
关于迷宫问题,我一开始想的是如何去存那些路径的坐标,有想到用链表和队列之类的东西,后来发现只要一个结构体就可以简单的存了;
#include <stdio.h> #include <algorithm> #include <string.h> #include <math.h> #include <queue> #include <map> #include <vector> #include <iostream> using namespace std; #define N 5 int Map[5][5]; typedef struct node { int x, y; }point; point p[15]; void dfs(int x, int y, int st) { int X, Y; p[st].x=x; p[st].y=y; if(x==4&&y==4) { for(int i=0;i<st;i++) { printf("(%d, %d)\n", p[i].x, p[i].y); } printf("(4, 4)\n"); } else { st=st+1; for(int i=0;i<2;i++) { if(i==0) { X=x+1; Y=y; if(X>=0&&X<5&&Y>=0&&Y<5&&Map[X][Y]!=1) { dfs(X, Y, st); } } else if(i==1) { X=x; Y=y+1; if(X>=0&&X<5&&Y>=0&&Y<5&&Map[X][Y]!=1) { dfs(X, Y, st); } } } } } int main() { int i, j; for(i=0;i<5;i++) { for(j=0;j<5;j++) { scanf("%d", &Map[i][j]); } } memset(p, 0, sizeof(p)); dfs(0, 0, 0); return 0; }