美文网首页
继无向图 深度搜索路径

继无向图 深度搜索路径

作者: awesomefighter | 来源:发表于2017-04-16 13:33 被阅读0次

用栈存路径信息


public class DepthFirstPaths {

private boolean[] marked;

private int[] edgeTo;//当前节点下一节点信息

private final int s;

public DepthFirstPath(Grath G, int s) {

marked = new boolean[G.V()];

edgeTo = new int[G.V()];

this.s = s;

dfs(G, s)

}

private void dfs(Grath G, int v) {

marked[v] = true;

for(int w : G.adj(v)) {

if(!marked[w]) {

edgeTo[w] = v;

bfs(G, w);

}

}

public boolean hasPathTo(int v) { return marked[v]; }

public Iterable pathTo (int v) {

if(!hasPathTo(v) return null; 经过深度搜索后未访问过该节点

Stack<Integer> path = new Stack<>();

for(int x = v; x != s; x = edgeTo(x))

path.push(x);

path.push(s);

return  path;

}

}

相关文章

  • 继无向图 深度搜索路径

    用栈存路径信息 public class DepthFirstPaths { private boolean[] ...

  • 《算法》笔记 10 - 无向图

    表示无向图的数据结构邻接表数组 深度优先搜索深度优先搜索寻找路径深度优先搜索的性能特点 广度优先搜索 两种搜索方式...

  • 图 2019-04-20

    图实现有向图、无向图、有权图、无权图的邻接矩阵和邻接表表示方法实现图的深度优先搜索、广度优先搜索实现 Dijkst...

  • 环和有向无环图 1. 概念 有向图的可达性:深度优先搜索和广度优先搜索,可应用于内存管理中内存回收有向无环图:一幅...

  • 搜索

    一、深度优先搜索 图深度优先遍历、深度优先搜索算法求有权图两点最短路径 二、广度优先搜索 图广度优先遍历、广度优先...

  • 7天练|Day6:图

    关于图的几个必知必会的代码实现图实现有向图、无向图、有权图、无权图的邻接矩阵和邻接表表示方法实现图的深度优先搜索、...

  • 数据结构与算法之总复习(深度优先搜索、堆、动态规划在图论中的运用

    参考资料:《算法导论》第三版 深度优先搜索 一个图中所有不在深度优先搜索树中的边,都是后向边 在对无向图的深度优先...

  • 图存存储 邻接矩阵 无向图会比较浪费空间稀疏图也会 邻接表存储 逆邻接表存储 深度和广度优先搜索 广度优先搜索

  • 静态寻路算法Dijkstra(python)

    算法介绍 迪科斯彻算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树。该...

  • 图的相关算法

    深度优先搜索非递归形式 DFS 深度优先搜索非递归形式 广度优先搜索 BFS 判断无向图是否是树 判断有向图中两...

网友评论

      本文标题:继无向图 深度搜索路径

      本文链接:https://www.haomeiwen.com/subject/rjjaattx.html