读书人

八: 图的深度优先

发布时间: 2013-08-10 21:14:06 作者: rapoo

8: 图的深度优先

1: 图的深度游戏:(邻杰表表示)

?从 v节点开始: 遍历v的邻接点g, g未被访问,再遍历g的邻接点

是一个递归的过程,然后再回到v

?

就是对一个图的深度优先遍历

?

具体过程 看: 附件ppt:

?

?

??

package com.algorithm.common.graph;/** * 图深度优先 * @author lijunqing */public class DFS {        /**     * 标记节点是否访问     */    private boolean[] marked;    private int count;    public DFS(Graph g, int s) {        marked=new boolean[g.V()];        dsf(g, s);    }    /**     * dsf 从s一个邻接点开始不断深入 递归到 遍历玩g的最后一个邻接点结束     * @param g     * @param s     */    private void dsf(Graph g, int s) {        marked[s]=true;        count++;        for(int w: g.adj(s)) { // 到遍历玩g的最后一个邻接点结束            if(!marked[w]) {                dsf(g, w);            }        }    }        /**     * 看节点是否被标记     * @param v     * @return     */    public boolean marked(int v) {        return marked(v);    }        /**     * 被标记的节点数     * @return     */    public int count() {        return count;    }}

?

读书人网 >编程

热点推荐