資源簡介
廣度優先搜索(也稱寬度優先搜索,縮寫BFS,以下采用廣度來描述)是連通圖的一種遍歷策略。本程序用Matlab語言實現廣度優先算法
代碼片段和文件信息
function?BFS_Maze(maze)
?
%?maze:是迷宮矩陣,其中0表示可以去走的路
%?????????????????????1表示障礙
%?????????????????????2表示入口
%?????????????????????3表示出口
%?????????????????????5表示行走路徑
%?????????????0?2?0?0?1
%?????????????0?1?1?0?1
%?????????????0?1?3?0?1
%?????????????0?1?0?0?1
?
%?copyright:?qbb?2013-3-12
if?nargin?==?0
????maze?=?[0?2?0?0?1
????????0?1?1?0?1
????????0?1?3?0?1
????????0?1?0?0?1];
end
mazecopy?=?maze;
%?定義四個方向
directions?=?kron(eye(2)[-11]);
%?數組存儲解的情況,I?J?Pre
remark?=?zeros(1003);
[IJ]?=?find(maze?==?2);%?找到起點
remark(1:)?=?[IJ-1];
count?=?2;
search(1);
sol?=?remark(count-1:);
while(sol(end3)?>?0)
????sol?=?[sol;remark(sol(end3):)];
end
mazecopy(sub2ind(size(maze)?sol(2:end-11)?sol(2:end-12)))?=?5;
disp(mazecopy);
disp(sol);
????function?search(front)
????????x?=?remark(front1);
????????y?=?remark(fro
評論
共有 條評論