在實現過程中遇到的問題有:#include#includeusing namespace std;
int mg[10][10], ,
, ,, ,
, ,, ,
};//入口(1,1),出口(8,8)
typedef struct
gezi;
typedef struct
path;
void print(path p,int pos)
while(k!=0);//容易出錯,
for(int i=0;i<=end;i++) }
void searchway(int xi,int yi,int xe,int ye)
//進行路徑搜尋
if(mg[tx-1][ty]==0)
if(mg[tx+1][ty]==0)
if(mg[tx][ty+1]==0)
if(mg[tx][ty-1]==0)
/*for(di=0;di<4;di++)
if(mg[tx][ty]==0)
}*/ }}
int main()
1、忘記在迷宮位置入隊的時候,將mg[i][j]置為-1,否則將會回溯,導致得不到解;
2、在反向輸出迷宮路徑的時候,要判斷陣列下標,元素的pre,和-1之間的關係。正確思路是:
類似鍊錶的free操作,標記下乙個元素,釋放當前元素,將當前元素賦給下乙個元素,如此迴圈
學習到的東西有:利用swtich操作,簡潔**的重複性。
只需要利用case列出可能取到的路徑,再統一用if判斷語句進行入佇列。
棧和佇列迷宮問題
define n 6 int maze n n 通過乙個數字來創造乙個6 6的迷宮,其中 0代表牆,1代表能夠走的路。這裡將陣列通過畫圖軟體畫出來,這裡紅色的1代表迷宮的入口,綠色的 1代表迷宮的出口。這個陣列所建立的迷宮是相對複雜的一種迷宮,首先這個迷宮是存在環的 這幾個1,如果你的迷宮函式只是用...
解決迷宮問題, 棧和佇列
includeusing namespace std const int m 10,n 10 int mg m 1 n 1 const maxsize 200 struct qu maxsize int front 1,rear 1 隊首指標和隊尾指標 1 首先將 1,1 入隊 2 在佇列qu不為空...
棧和佇列的迷宮問題
maze.h pragma once include include define n 6 static int maze n n typedef struct pos pos void mazeprint int mazegetpath pos entry,pos exit int mazeche...