資料結構 迷宮(遞迴)

2021-08-07 03:43:40 字數 1060 閱讀 4906

**如下:

#include 

#include

using

namespace

std;

#define max_row 10 //巨集定義行

#define max_col 10 //巨集定義列

struct seat

int _x;

int _y;

};class maze}}

void printmaze()//列印迷宮

cout

<< endl;

}cout

<< endl;

}~maze()

delete _map;

}bool ispass(seat s)//判斷當前位置是否為通路

bool passmaze(seat& s)//走迷宮

if (passmaze(left)) //朝左走

if (passmaze(right)) //朝右走

if (passmaze(down)) //朝下走

_map[s._x][s._y] = 3;//若上下左右均走不通,則回退回來並且將原來位置標記為3,不再走這裡

}return

false;

}private:

int **_map;

};int main()

, ,,,

,,,,

,};maze maze(maparr, max_row, max_col);

maze.printmaze();

seat s(9, 6); //迷宮入口

maze.passmaze(s);

maze.printmaze();

return

0;}

執行結果:

這樣,乙個簡易的遞迴實現迷宮就完成了。

資料結構16 遞迴 迷宮問題

再把左右兩行都設定為1 for int i 0 i 設定擋板 map 3 1 1 map 3 2 1 輸出地圖 代表二維陣列的行數 for int i 0 i system.out.println system.out.println 小球走過的路線 使用遞迴回溯給小球找路 setway map,1...

資料結構 遞迴思想及遞迴實現迷宮問題

遞迴 就是自己呼叫自己,然後一層層返回 乙個簡單的例子 列印問題 public static void main string args 列印問題 我們可以分析這個程式的執行過程 程式的方法在虛擬機器的棧空間執行 這就是遞迴的過程 有這樣乙個迷宮,從起點到終點,紅色是牆,黃色的是路,可以走,一次走一...

資料結構 迷宮

迷宮問題.cpp 定義控制台應用程式的入口點。include stdafx.h define m 4 define n 4 define maxsize 100 int mg m 2 n 2 struct stack maxsize path maxsize 定義棧和最短路徑的陣列 初始化 int ...