資料結構 佇列 迷宮的最短路徑

2021-07-11 18:06:46 字數 940 閱讀 1365

問題**《資料結構》(c語言版)主編 秦鋒 p86

求迷宮的最短路徑:現在設計乙個演算法找一條從迷宮入口到出口的最短路徑。此程式和書上的思路不一樣。。。。。。

//這個演算法是佇列,遞迴綜合考察

#include

#include

#define maxsize 100

using namespace std;

int  maze[12][12]=,,

,,,,

,,,,

,};//上面有三條路徑,沒有環路,求出最短路徑

//定義乙個佇列------------------------------------》順序無迴圈佇列

typedef struct 

sqtype; 

typedef struct 

seqqueue,*pseqqueue;

//起始點

int x_start=1;

int y_start=1;

//終止點

int x_end=7;

int y_end=10;

//定義前進方向

int ahead[4][2]=,,

,};//標記

//bool flag[4]=;

vectorreversal;

//函式

void path_find(pseqqueue path_queue, int num)

i++;

}  if(path_queue->front!=path_queue->rear)

else

else

//cout<<"("rear].x<<","rear].y<<")";

reversal.push_back(path_queue->data[path_queue->rear]);}}

void main()

}

資料結構 求多出口迷宮的最短路徑

上面我們已經寫過遞迴和非遞迴來實現求解迷宮的問題,今天我們就在遞迴的基礎上實現多條通路,最短問題。初始化最短路徑地圖 多通路最短路徑 void mazeinitshortpath maze maze int i 0 for iint j 0 for jmap i j map i j 用這個特殊的函式...

迷宮最短路徑

include include using namespace std const int max n 100,max m 100 const int inf 100000000 使用pair表示狀態時,使用typedef會更加方便一些 typedef pairp 輸入 char maze max ...

迷宮最短路徑

問題描述 小a同學現在被困在了乙個迷宮裡面,他很想從迷宮中走出來,他可以向上 向下 向左 向右移動 每移動一格都需要花費1秒的時間,不能夠走到邊界之外。假設小a現在的位置在s,迷宮的出口在e,迷宮可能有多個出口。問小a想要走到迷宮出口最少需要花費多少秒?並輸出從起點到最近出口的路徑。任務要求 1 迷...