0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言重解经典回溯算法案例

Q4MP_gh_c472c21 来源:cc 2019-01-29 11:24 次阅读

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

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

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136683
  • 代码
    +关注

    关注

    30

    文章

    4779

    浏览量

    68521

原文标题:C语言重解经典回溯算法案例-迷宫问题

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    回溯经典 (五皇后问题) (算法)

    5皇后问题:在8*8的国际象棋棋盘上,放5个皇后,使它们控制整个棋盘,即在任何一格放一个棋子,都会马上被吃掉。下面介绍回溯解法定义一个表示点的数据结构: struct Pt {Int x,y
    发表于 08-16 14:56

    C语言经典算法100例

    C语言经典算法100例
    发表于 11-01 13:51

    C语言经典算法100例分享

    C语言经典算法,要的拿去! C语言经典
    发表于 07-19 01:47

    C语言经典算法分享

    C语言经典算法
    发表于 02-01 07:45

    C语言有哪些经典算法

    C语言经典算法
    发表于 03-09 07:35

    C语言经典算法大全

    C语言经典算法,详细解析算法过程及算法思想,给读者具有启发意义,教程包含
    发表于 10-07 08:16

    C语言经典算法

    C语言经典算法--助你解决算法问题C语言
    发表于 03-23 14:30 27次下载

    经典C语言算法

    一些经典C语言算法,该算法详细介绍了使用C语言如何
    发表于 04-06 14:52 4次下载

    100个经典C语言算法

    C语言经典算法 .doc 这是我收集的部分c语言算法
    发表于 04-06 15:13 0次下载

    算法-c语言描述

    算法-c语言描述
    发表于 10-27 15:28 46次下载
    <b class='flag-5'>算法</b>精<b class='flag-5'>解</b>-<b class='flag-5'>c</b><b class='flag-5'>语言</b>描述

    电路板排列问题 回溯C语言

    本文为大家带来用C语言实现的回溯法电路板排列程序。
    发表于 01-18 17:06 5999次阅读

    C语言经典算法大全包括了51个算法的详细中文概述

    C语言经典算法大全包括了51个算法的详细中文概述
    发表于 06-04 08:13 148次下载
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>的<b class='flag-5'>经典</b><b class='flag-5'>算法</b>大全包括了51个<b class='flag-5'>算法</b>的详细中文概述

    10个经典C语言面试基础算法及代码

    10个经典C语言面试基础算法及代码
    的头像 发表于 01-16 11:09 2849次阅读

    C语言的100个经典算法免费下载

    本文档的主要内容详细介绍的是C语言的100个经典算法免费下载。
    发表于 09-28 08:00 6次下载
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>的100个<b class='flag-5'>经典</b><b class='flag-5'>算法</b>免费下载

    关于回溯算法的介绍与运用

    本文就来看一道非常经典回溯算法问题,子集划分问题,可以帮你更深刻理解回溯算法的思维,得心应手地写出回溯
    的头像 发表于 03-25 13:42 1643次阅读