C 棧實現迷宮求解

2021-09-12 11:44:12 字數 1149 閱讀 4178

給出乙個迷宮,求解從路口到出口的全部路徑是乙個經典問題,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 ...