/**
* 迷宮求解問題
* 用乙個m×n的矩陣表示迷宮,0和1分別表示迷宮中的通路和障礙。
* 設計乙個程式,對給定的迷宮,求出找到的第一條從入口到出口的通路,或得到沒有通路的結論。
* 我們指定:
* 迷宮的入口為矩陣的左上角(1,1),迷宮的出口為右下角(m,n);
* 路徑的探索順序依次為「東南西北」(即:右下左上)。
* 輸入:
* 第一行輸入兩個整數,空格間隔,分別表示矩陣的行數m和列數n;
* 接下來的連續m行,輸入迷宮矩陣的資訊。
* 輸出:
* 求得的通路以三元組(i,j,d)的形式輸出。
*/#include #include #define n 16
typedef struct box box;
typedef struct stack stack;
int m, n;
int map[n][n] = ,,,
,,,,
,,,,
,,,,
};stack st;
int path(int xi, int yi, int xe, int ye); /* 求解從(xi,yi)到(xe,ye)的路徑 */
int main(void)
path(1, 1, m, n);
return 0;
}int path(int xi, int yi, int xe, int ye)
printf("\n");
return 1;
}find = 0;
while (di < 3 && find == 0)
if (map[i][j] == 0)
find = 1;
}if (find == 1)
if(di == 1)
if(di == 2)
if(di == 3)
/* 避免重複走到該方塊 */
}else
}return 0;
}
遞迴實現迷宮求解
首先在當前路徑前 有乙個maze.txt,儲存的內容為 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 ...
迷宮求解 遞迴
首先來看一下迷宮簡易圖 我們用 0 來表示該位置是牆,用 1 來表示該位置是路.所以,我們在處理迷宮問題的時候可以將其看成乙個二維陣列即可,而對應的每一條路我們可以用座標的形式將其表示,所以還需要有乙個結構體來描述對應的點的 1.相關資料結構 typedef struct maze maze typ...
非遞迴迷宮問題實現
模組化,重整程式 class lstack def init self,top 1,full 20 self.top top self.stack self.full full def is full self return self.full self.top 1 def is empty sel...