【Python |边学边敲边记】第二次:深度,及广度优先算法

  

  
  

  <>节   <>节   <>节   

  【Python |边学边敲边记】第二次:深度,及广度优先算法”>
  </p>
  <h4>
  
  <br/>
  </h4>
  <p>
  以后尽量每天更新一篇,也是自己的一个学习打卡!加油!今天给大家分享的是,Python里深度/广度优先算法介绍及实现。
  </p>
  <h4>
  
  </h4>
  <编辑>
  
  </编辑>
  <p>
  深度优先搜索的主要特征就是,假设一个顶点有不少相邻顶点,当我们搜索到该顶点,我们对于它的相邻顶点并不是现在就对所有都进行搜索,而是对一个顶点继续往后搜索,直到某个顶点,他周围的相邻顶点都已经被访问过了,这时他就可以返回,对它来的那个顶点的其余顶点进行搜索。
  <br/>
  深度优先搜索的实现可以利用递归很简单地实现。
  </p>
  <编辑>
  
  </编辑>
  <p>
  广度优先搜索相对于深度优先搜索侧重点不一样,深度优先好比是一个人走迷宫,一次只能选定一条路走下去,而广度优先搜索好比是一次能够有任意多个人,一次就走到和一个顶点相连的所有未访问过的顶点,然后再从这些顶点出发,继续这个过程。
  </p>
  <p>
  具体实现的时候我们使用先进先出队列来实现这个过程:
  </p>
  <ol>
  <李>
  <p>
  
  </p>
  李</>
  <李>
  <p>
  
  </p>
  李</>
  <李>
  <p>
  
  </p>
  李</>
  </ol>
  <p>
  广度优先搜索的一个重要作用就是它能够找出最短路径,这个很好理解,因为广度优先搜索相当于每次从一个起点开始向所有可能的方向走一步,那么第一次到达目的地的这个路径一定是最短的,而到达了之后由于这个点已经被访问过而不会再被访问,这个路径就不会被更改了。
  </p>
  <h4>
  
  </h4>
  <h7>
  
  </h7>
  <中心>
  <p>
  <img src=         date : 2018.7.29   
     author :极简XksA   
     时间:goal 深度/广度优先算法   
     & # 39;& # 39;& # 39;      
     
        
        
     
        
        ,         :      
     ,,,,      ,tree_node       ,      ,      :   
     ,,,,,,,印刷(tree_node._data)   
     ,,,,,,,      ,tree_node._left       ,      ,      :   
     ,,,,,,,,,,,      ,depth_tree (tree_node._left),,      
     ,,,,,,,      ,tree_node._right       ,      ,      :   
     ,,,,,,,,,,,      ,depth_tree (tree_node._right),,      
     
        
        ,         :      
     ,,,,      ,root       ,      :   
     ,,,,,,,      
     ,,,my_queue =, []   
     ,,,node =,根   
     ,,,my_queue.append(节点),,      
     ,,,,      ,my_queue:   
     ,,,,,,,node =, my_queue.pop (      ),      
     ,,,,,,,印刷(node.elem),,,      
     ,,,,,,,      ,node.lchild       ,      ,      :   
     ,,,,,,,,,,,my_queue.append (node.lchild),,,,      
     ,,,,,,,      ,node.rchild       ,      ,      :   
     ,,,,,,,,,,,my_queue.append (node.rchild),,,,      
     之前            

  方法一:列表法   

  <前>   <代码类=" python语言python hljs ">         
        
        
     my_Tree =, (   
     ,,,,      ,      
     ,,,(      ,   

【Python |边学边敲边记】第二次:深度,及广度优先算法