迷宮問題的總體思路是,從迷宮的入口出發,沿著某乙個方向向前試探,若能夠行得通,則繼續往前走,否則原來返回,再換另乙個方向繼續試探,直到所有可能的通路都被試探過,為了保證在任何乙個位置都能夠原來返回,需要設定乙個堆疊結構來儲存從入口到當前位置的路徑。
"maze.h"
#pragma once
#include using namespace std;
#include #includevoid initmaze(int* maze,size_t n)
} }fclose(fout);
}void printmaze(int* maze,size_t n)
else }
bool getmazepath(int* maze,size_t n,pos entry,stack& path)//探測
//上pos next = cur;
next._row--;
if (checkisaccess(maze,n,next))
//右next = cur;
next._col++;
if (checkisaccess(maze,n,next))
//下next = cur;
next._row++;
if (checkisaccess(maze,n,next))
//左next = cur;
next._col--;
if (checkisaccess(maze,n,next))
path.pop();
} return false;
}
test.cpp
#define _crt_secure_no_warnings 1
#include "maze.h"
void test()
; initmaze((int* )maze,10);
printmaze((int* )maze,10);
pos entry = ;//入口給定maze[2][0]
stackpath;//需要棧的協助
資料結構 迷宮問題
設計乙個迷宮求解程式,要求如下 以m n表示長方陣表示迷宮,求出一條從入口到出口的通路,或得出沒有通路的結論。能任意設定的迷宮 include using namespace std define maxsize 1000 int mg maxsize maxsize typedef structb...
資料結構 迷宮問題
任務 可以輸入乙個任意大小的迷宮資料,用非遞迴的方法求出一條走出迷宮的路徑,並將路徑輸出 要求 在上交資料中請寫明 儲存結構 基本演算法 可以使用程式流程圖 源程式 測試資料和結果 演算法的時間複雜度 另外可以提出演算法的改進方法 該課設意在考察棧和佇列的資料結構,我主要說一下 的設計思路,供諸君參...
資料結構之迷宮問題
求迷宮問題就是求出從入口到出口的路徑。在求解時,通常用的是 窮舉求解 的方法,即從入口出發,順某一方向向前試探,若能走通,則繼續往前走 否則沿原路退回,換乙個方向再繼續 試探,直至所有可能的通路都試探完為止。為了保證在任何位置上都能沿原路退回 稱為回溯 需要用乙個後進先出的棧來儲存從入口到當前位置的...