小伙用C语言回溯算法解决迷宫问题,在编程上有不可思议的天赋!

迷宫问题是一道经典的回溯算法问题,给定一个迷宫矩阵,矩阵中的1表示障碍,0表示可走通路,给定迷宫入口出口,要求寻找从入口穿过迷宫到达出口的所有路径,有则输出,无则给出提示。一本合格的数据结构教科书一般都会介绍迷宫问题,网上的分析也是铺天盖地,这里就不再赘述重复的内容了。废话不多说,简单介绍一下程序,然后上代码。
小伙用C语言回溯算法解决迷宫问题,在编程上有不可思议的天赋!_第1张图片

首先
想要源码+C语言学习资料的可以加小编C/C++编程学习群:825414254即可免费获取!

小伙用C语言回溯算法解决迷宫问题,在编程上有不可思议的天赋!_第2张图片

该程序用二维数组表示迷宫,用另一个二维数组记录迷宫中的位置是否已经走过,同时用一个链式栈存放搜索出的临时路径。程序从迷宫入口开始试探,随着回溯试探过程的进行,链式栈的长度不断变化,当试探到迷宫出口时,链表中存放的就是一条完整的穿过迷宫的路径了,输出路径后回溯,继续试探下一条路径,当回溯到入口时没有新的可走方向时整个回溯试探的过程也就结束了。链表节点中除了存放被路径连接的各单元的行列标外,还存放有由该节点代表的单元前往该节点的后继节点代表的单元的方向,这么做是为了方便回溯操作的进行。

小伙用C语言回溯算法解决迷宫问题,在编程上有不可思议的天赋!_第3张图片

为方便起见,程序中迷宫的入口是固定的,为左上角单元,出口同样固定,为右下角单元。这并不妨碍程序的普适性,只要稍加修改就可以使程序适用于任意给定的出口和入口的情形。

啰嗦了这么半天,下面该上代码了,代码用C语言编写,具体如下。

小伙用C语言回溯算法解决迷宫问题,在编程上有不可思议的天赋!_第4张图片

小伙用C语言回溯算法解决迷宫问题,在编程上有不可思议的天赋!_第5张图片

小伙用C语言回溯算法解决迷宫问题,在编程上有不可思议的天赋!_第6张图片
小伙用C语言回溯算法解决迷宫问题,在编程上有不可思议的天赋!_第7张图片

小伙用C语言回溯算法解决迷宫问题,在编程上有不可思议的天赋!_第8张图片

小伙用C语言回溯算法解决迷宫问题,在编程上有不可思议的天赋!_第9张图片

小伙用C语言回溯算法解决迷宫问题,在编程上有不可思议的天赋!_第10张图片

小伙用C语言回溯算法解决迷宫问题,在编程上有不可思议的天赋!_第11张图片
小伙用C语言回溯算法解决迷宫问题,在编程上有不可思议的天赋!_第12张图片
小伙用C语言回溯算法解决迷宫问题,在编程上有不可思议的天赋!_第13张图片
小伙用C语言回溯算法解决迷宫问题,在编程上有不可思议的天赋!_第14张图片

你可能感兴趣的:(C语言,计算机,C++,c/c++,互联网,编程)