1)找一組解
#include
#define r 4
#define c 4
//表示移動的四個方向
int move[4][2]=,,,
};//表示迷宮
int m[r+2][c+2]=,,,
,,};//表示走過的路
int t[r+2][c+2]=;
int maze(int x,int y)
//往四個方向走
for(int i=0;i<4;i++)}}
return0;}
int main(void)
2)所有解
#include
#define r 4
#define c 4
int move[4][2]=,,,
};int m[r+2][c+2]=,,,
,,};int t[r+2][c+2]=;
int s[r*c][2];//用棧,存放走過的路徑
int top=-1;//棧頂指標
int cnt=0;//統計情況
void show()
printf("\n");
}void maze(int x,int y)
for(i=0;i<4;i++)}}
int main(void)
3)去除t
#include
#define r 4
#define c 4
int move[4][2]=,,,
};int m[r+2][c+2]=,,,
,,};int s[r*c][2];
int top=-1;
int cnt=0;
void show()
printf("\n");
}void maze(int x,int y)
for(i=0;i<4;i++)}}
int main(void)
4)存所有情況,找最優解
#include
#include
#define r 4
#define c 4
int move[4][2]=,,,
};int m[r+2][c+2]=,,,
,,};int s[r*c][2];
int top=-1;
int cnt=0;
typedef
struct elemstep;
typedef
struct nodeelemsn;
elemsn *head=null,*tail;
void show()
printf("\n");*/
int i=0;
step *p,*t;
if(!head)
head=tail=(elemsn *)malloc(sizeof(elemsn));
else
tail=tail->next=(elemsn *)malloc(sizeof(elemsn));
tail->next=null;
tail->nextstep=null;
tail->allstep=top+1;//總步逐數
t=tail->nextstep;
while(i<=top)
}void maze(int x,int y)
for(i=0;i<4;i++)
}}void printlink()
}int main(void)
老鼠走迷宮
說明 老鼠走迷宮是遞迴求解的基本題型,我們在二維陣列中使用2表示迷宮牆壁,使用1來表示老鼠的行走路徑,試以程式求出由入口至出口的路徑。解法 老鼠的走法有上 左 下 右四個方向,在每前進一格之後就選乙個方向前進,無法前進時退回選擇下乙個可前進方向,如此在陣列中依序測試四個方向,直到走到出口為止,這是遞...
老鼠走迷宮
老鼠走迷官 一 說明 老鼠走迷宮是遞迴求解的基本題型,我們在二維陣列中使用2表示迷宮牆壁,使用1來表 示老鼠的行走路徑,求出由入口至出口的路徑。解法 老鼠的走法有上 左 下 右四個方向,在每前進一格之後就選乙個方向前進,無法前 進時退回選擇下乙個可前進方向,如此在陣列中依序測試四個方向,直到走到出口...
老鼠走迷宮
參考 資料結構 胡昭民著 老鼠走迷宮 鏈棧實現 include include define north maze x 1 y 定義向北移動位置 define south maze x 1 y 定義向南移動位置 define west maze x y 1 定義向西移動位置 define east ...