• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: Matlab
  • 标签: matlab  广度优先  

资源简介

广度优先搜索(也称宽度优先搜索,缩写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

评论

共有 条评论