// 迷宮問題.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 top = -1;
int count = 1;
int minlen = maxsize;
void mgpath()
}printf_s("\n");
if (top + 1 < minlen)
minlen = top + 1;
}// 開始回溯路徑,尋找其他路徑
mg[stack[top].i][stack[top].j] = 0;
top--;
i = stack[top].i;
j = stack[top].j;
di = stack[top].di;
} find = 0;
while (di<4&&find==0)
if (mg[i][j] == 0)
}if (find == 1) // 找到下乙個可走節點
else // 沒有路徑可走,則退棧(所有資訊下次入棧時重新初始化)
}// 列印迷宮最短路徑。
if (minlen >= maxsize)
else
} }}
int main()
資料結構之迷宮
這個主要是練習棧的使用,當時編了好長時間呢。以乙個mxn的長方陣表示迷宮,0和1分別表示迷宮中的通路和障礙。設計乙個程式,對任意設定的額迷宮,求出一條從入口到出口的通路,或得出沒有通路的結論。如下 include iostream using namespace std int east 1 int...
資料結構 迷宮問題
迷宮問題的總體思路是,從迷宮的入口出發,沿著某乙個方向向前試探,若能夠行得通,則繼續往前走,否則原來返回,再換另乙個方向繼續試探,直到所有可能的通路都被試探過,為了保證在任何乙個位置都能夠原來返回,需要設定乙個堆疊結構來儲存從入口到當前位置的路徑。maze.h pragma once include...
資料結構 迷宮問題
設計乙個迷宮求解程式,要求如下 以m n表示長方陣表示迷宮,求出一條從入口到出口的通路,或得出沒有通路的結論。能任意設定的迷宮 include using namespace std define maxsize 1000 int mg maxsize maxsize typedef structb...