利用回溯的深度优先遍历找出基于邻接表存储的图中一个顶点到另一个顶点的所有简单路径

邻接表存储方法

利用回溯的深度优先遍历找出基于邻接表存储的图中一个顶点到另一个顶点的所有简单路径
  • 每个单链表添加一个表头节点(表示顶点信息)。并将所有的表头节点构成一个数组,下标为 i 的元素表示顶点 i 的表头节点。
    利用回溯的深度优先遍历找出基于邻接表存储的图中一个顶点到另一个顶点的所有简单路径

    例子分析

    利用回溯的深度优先遍历找出基于邻接表存储的图中一个顶点到另一个顶点的所有简单路径
    然后我们来分析一下,首先从头节点1开始出发,然后跳到1的firstarc节点0上,之后进入DFS,再从0的头节点出发,进入0的firstarc节点1,因为1已经被访问过,从Dvisited[1]=1上可以判断出。所以跳到nextrac3上,以此类推,我们最终找到第一条路径:1—0—3—2—4。之后进行回溯,现在数组Dvisited中下标为1、0、3、2、4的值都为1,因为他们已经被访问过。
    利用回溯的深度优先遍历找出基于邻接表存储的图中一个顶点到另一个顶点的所有简单路径
    然后返回到u=3中,DFS完毕,应该执行p = p->nextarc; 此时p指向的是头节点为3的单链表的最后一个节点adjvex=4。然后输出第二条路径:1—0—3—4。然后继续按照这种方式寻找其他的路径并输出。这里就不接着往下分析了,画图太费劲。

    文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览34618 人正在系统学习中

    来源:FeifeiYa!

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年4月12日
下一篇 2020年4月12日

相关推荐