队列C语言迷宫最短路径

给定一迷宫以及入口和出口的坐标,要求寻找从入口到出口的最短距离。比如下图假如入中是(00),出口是(1,7)黄色代表墙,白色代表通路,则从入口到出口的最短需要走8步。
输入
第一行两个数m和n表示迷宫的行数和列数。迷宫大小不超过45×45。
接下来是m行n列的数,用来表示迷宫,1表示墙,0表示通路。
第二行四个数x1,y1,x2,y2分别表示起点和终点的坐标。
输出
从起点到终点所经过的最短路径长度,如果不存在,输出"no path!"

dfs,或者bfs会吗