当前位置 : 主页 > 编程语言 > java >

深度优先遍历与广度优先遍历

来源:互联网 收集:自由互联 发布时间:2022-06-30
白话理解: 深度优先遍历:一路往最远的地方走 广度优先遍历:遍历向涟漪一样向外扩散 深度优先遍历具体过程: 这里以下图为数据列 首先选择一个未走到过的顶点作为起始的出发

白话理解:

  • 深度优先遍历:一路往最远的地方走
  • 广度优先遍历:遍历向涟漪一样向外扩散
  • 深度优先遍历具体过程:
    这里以下图为数据列
    深度优先遍历与广度优先遍历_数据结构

  • 首先选择一个未走到过的顶点作为起始的出发点,比如这里从1号顶点出发
  • 沿1号顶点的边去尝试访问其他未走过的顶点,首先发现2号顶点没有走到过,于是来到2号顶点
  • 再以2号顶点作为出发点,访问没有走过的顶点,走到4号点
  • 来到4号点,发现已经不能访问没有走过的顶点了。所有需要返回到前一个顶点2号点
  • 返回2号点发现还是没有未访问的顶点,返回1号点,从1号点开始,访问未走过的3号、5号
  • 广度优先遍历
    这里以下图为数据列:
    深度优先遍历与广度优先遍历_深度优先遍历_02

  • 从起点0开始遍历
  • 从其邻接表得到的所有的邻接节点,把这三个节点都进行标记,表示访问过了(215)
  • 从0的邻接表第一个顶点2开始寻找新的岔路。
  • 重复步骤2,返回到0点
  • 接着从0的邻接表第二顶点开始寻找新的岔路
  • 重复步骤2,直到遍历结束

  • 上一篇:机器学习面试题
    下一篇:没有了
    网友评论