码迷,mamicode.com
首页 > 其他好文 > 详细

深度和广度优先搜索

时间:2019-12-21 13:23:56      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:nbsp   linked   深度   rap   邻接   部分   color   广度优先搜索   alt   

我们知道,算法是作用于具体数据结构之上的,深度优先搜索算法和广度优先搜索算法都是基于“图”这种数据结构的。这是因为,图这种数据结构的表达能力很强,大部分涉及搜索的场景都可以抽象成“图”。

无向图的代码实现

public class Graph { // 无向图
  private int v; // 顶点的个数
  private LinkedList<Integer> adj[]; // 邻接表

  public Graph(int v) {
    this.v = v;
    adj = new LinkedList[v];
    for (int i=0; i<v; ++i) {
      adj[i] = new LinkedList<>();
    }
  }

  public void addEdge(int s, int t) { // 无向图一条边存两次
    adj[s].add(t);
    adj[t].add(s);
  }
}

 

广度优先搜索

广度优先搜索(Breadth-First-Search),我们平常都把简称为 BFS。直观地讲,它其实就是一种“地毯式”层层推进的搜索策略,即先查找离起始顶点最近的,然后是次近的,依次往外搜索。理解起来并不难,所以我画了一张示意图,你可以看下。

技术图片

 

吃个饭再写。

   

深度和广度优先搜索

标签:nbsp   linked   深度   rap   邻接   部分   color   广度优先搜索   alt   

原文地址:https://www.cnblogs.com/CherryTab/p/12076504.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!