課本源碼部分
第3章 棧和隊列 - 迷宮尋路
——《數據結構》-嚴蔚敏.吳偉民版
源碼使用說明 鏈接☛☛☛ 《數據結構-C語言版》(嚴蔚敏,吳偉民版)課本源碼+習題集解析使用說明
課本源碼合輯 鏈接☛☛☛ 《數據結構》課本源碼合輯
習題集全解析 鏈接☛☛☛ 《數據結構題集》習題解析合輯
本源碼引入的文件 鏈接☛ Status.h、SequenceStack.c
文檔中源碼及測試數據存放目錄:數據結構\▲課本算法實現\▲03 棧和隊列\04 Maze
概述
迷宮尋路的經典解法便是窮舉法。
解析
迷宮尋路的窮舉法即是對每一種可能的通道都做出探索,直到找到第一條完全暢通的路徑。
窮舉法的缺點是操作比較費時,而優點是算法相對簡潔,易於理解。在窮舉遍歷中,需要保存來時的路徑,如果在某個方向遇到錯誤的路徑,則需要退回到上一次正確的狀態,並嘗試對下一個方向進行遍歷。由於遍歷中需要經常用到這些“回溯”操作,所以棧就成了窮舉法最佳的數據結構,棧的每一個元素便是加入路徑的結點(包括位置、狀態信息):
源碼
文件一 ☛ Maze.h
文件二 ☛ Maze.c
文件三 ☛ Maze-main.c (測試文檔)
測試結果展示