給出乙個迷宮,求解從路口到出口的全部路徑是乙個經典問題,c++實現**如下:
// algrithm_practice.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
using namespace std;
#define d 10 //迷宮的維度
#include#includeint maze[d][d] = ,
, ,, ,
, ,, , };
int mark[d][d] = ;
struct postype;
struct elemtype;
void printstack(stacks)
while (!temp.empty())
}bool ismark(postype pos)
bool canpass(postype pos)
void footprint(postype pos)
postype nextpos(postype pos, int i);
return temp;
}else if (i == 2);
return temp;
} else if (i == 3);
return temp;
} else if (i == 4);
return temp; }}
void mazepath(postype start, postype end); //將該位置保留,並記錄在該步位移方向
path.push(e);
if (curpos.x == end.x&&curpos.y==end.y)
curpos = nextpos(curpos, 1);
curstep++;
} else
if (e.di < 4)
}} } while (!path.empty());
}int _tmain(int argc, _tchar* ar**)
; postype end = ;
mazepath(start, end);
return 0;
}
特別需要注意的一點是,c++中bool型函式很容易忽略返回值,c++編譯器不會報告錯誤! 棧實現迷宮求解問題
總體感觸是 不要著急,一步一步來,問題很容易解決的。首先是要實現乙個迷宮的地圖。明確如何儲存地圖,用vector實現二維陣列,每個元素代表地圖的乙個格仔。需要儲存哪些資訊。一張地圖的某乙個方格需要標示 能否通過,是否走過了。94 struct point 位置資訊可用postype儲存。就是 str...
迷宮求解 棧的實現
一 題目及分析 二 思路 迷宮 迷宮的檔案儲存方式 三 include include define length 10 define width 10 define start hang 1 從0行開始計算row define start lie 1 從0列開始column define end ...
利用棧實現迷宮求解
如下是每個節點的資料結構 1 typedef struct direction 方向 78 typedef struct point 位置 1213 14 typedef struct stacknode linkstackptr 節點資料結構 鏈棧及基本操作實現 1 typedef struct ...