栈结构应用-试探回溯法

试探回溯法的具体内容就不赘述了,谈谈栈结构在其中起到的作用

在书中提到一个神话故事:忒修斯的法宝,这个法宝是进入迷宫时使用的绳子,用于记录从迷宫的起点到当前位置所走过的路径,以防止在迷宫中迷茫,找不到来时的路。而将试探回溯法类比到这个迷宫问题时,这个栈结构起到的就相当于绳子的作用。

考虑栈结构更高效的原因,从不采用栈结构而是其它数据结构来记录走过的路径的效果对比着来看。(注意,这里采用某一数据结构的目的都是为了记录走过的路径)

如果是使用链表结构来记录走过的路径,那么如果当前节点无路可走时,需要回到上一个位置,即需要找到链表中上一个节点所在的地址,将其赋予指向当前节点的指针。那么可知,这个链表结构的节点还需要记录在链表中上一个节点的地址,需要类似双向链表中的节点这样的节点结构,如果当路径很长时,这就会造成空间的浪费,同时操作起来也较为繁琐。但是如果采用栈结构,只需要借助pop和push方法,就能得到走过路径中当前节点的上一个节点的地址和将新节点加入路径中,所以无论是从空间复杂度还是操作的方便程度上来看,栈结构都是这个绳子很好的表示方式。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值