棧,佇列實現迷宮問題

2021-08-16 03:03:08 字數 823 閱讀 6690

#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...