`
iluoxuan
  • 浏览: 579993 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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;
    }
}

 

分享到:
评论

相关推荐

    C例子:深度优先遍历

    该程序是我写的博客“一起talk C栗子吧(第四十四回:C语言实例--深度优先遍历一)”的配套程序,共享给大家使用

    C例子:深度优先搜索

    该程序是我写的博客“一起talk C栗子吧(第四十五回:C语言实例--深度优先遍历二)”的配套程序,共享给大家使用

    算法源码-优化与控制:基于深度优先搜索算法图论代码.zip

    深度优先搜索(DFS,Depth-First Search)是一种用于遍历或搜索树或图的算法,其基本思想是尽可能深地探索图的分支。在遇到回路时,它不会立即返回,而是继续沿着当前路径深入,直到达到某个节点的所有边都被访问过...

    C语言实现:八数码问题的深度优先搜索、广度优先搜索、过程表示(全)

    ①使用深度优先搜索来解决八数码问题 ②使用广度优先搜索来解决八数码问题 ③使用过程式表示和实现八数码问题 以及相关代码详细注释 过程式知识表示是将有关某一问题领域的知识, 连同如何使用这些知识的方法,均...

    深度优先搜索.docx

    深度优先搜索(Depth-First Search,DFS)是一种常用的图遍历算法,它可以遍历图中所有的点,从而帮助我们更好地理解图的结构和性质。在本文中,我们将使用R语言实现深度优先搜索算法,并对图论中的应用进行详细的...

    深度优先搜索实现八数码问题

    深度优先搜索(DFS,Depth-First Search)是图论与算法领域中的一种经典搜索策略,常用于解决树或图的遍历问题。在本场景中,八数码问题(也称滑动拼图游戏)是一个典型的应用,它属于组合优化问题,玩家需要通过...

    深度优先搜索解决八数码问题

    人工只能作业,利用python实现深度优先搜索解决八数码问题,测试通过,

    用深度优先、广度优先算法解决八数码问题

    本项目结合了两种搜索算法:深度优先搜索(DFS)和广度优先搜索(BFS),来解决这个问题。这两种算法都是图或树搜索的基本策略,用于寻找从初始状态到达目标状态的路径。 深度优先搜索是一种递归的策略,它尽可能深...

    bashuma.rar_bashuma _八数码_八数码 深度_有界 深度优先 搜索 八数码 难题_深度优先搜索

    通常,深度优先搜索(DFS)是遍历图或树结构的一种方法,它沿着树的深度尽可能深地搜索,直到找到目标节点或者回溯到没有更多分支的情况。在八数码难题中,深度优先搜索可能会导致无限循环,因为某些状态可能会被...

    走迷宫-----深度优先算法

    深度优先搜索是一种用于遍历或搜索树或图的算法。其核心思想是尽可能深地搜索树的分支。如果到达某个节点的子节点后发现无法前进,则回溯到父节点继续探索其他子节点。这种策略使得DFS能够有效地探索迷宫中的所有...

    8_num.rar_8数码 深度_visual c_八数码_八数码 深度优先_深度优先搜索

    深度优先搜索是一种用于遍历或搜索树形或图状结构的算法。它沿着树的分支尽可能深地搜索,直到找到解决方案或者到达某个预设的深度限制。在8数码问题中,每个可能的拼图状态被视为一个节点,而相邻的状态之间的连接...

    递归回溯深度优先搜索DFS练习题(含C++源码)

    深度优先搜索(Depth First Search,简称DFS)是一种用于遍历或搜索树或图的算法,它按照“尽可能深”的原则访问节点,直到达到叶节点或回溯到无新节点可访问时为止。在这个过程中,DFS通常与递归和回溯策略结合使用...

    种子填充算法-深度优先搜索

    深度优先搜索(Depth-First Search, DFS)是图论中一种重要的遍历或搜索算法,常用于解决树或图的遍历问题。在这里,种子填充算法结合DFS,可以有效地识别并填充相连的像素区域。 深度优先搜索的核心思想是从起点...

    深度优先搜索算法C++实现

    深度优先搜索(DFS,Depth-First Search)是一种用于遍历或搜索树或图的算法,其基本思想是从起点开始,沿着某条路径一直探索到尽可能深的层次,如果这条路径不能到达目标,就回溯到上一个节点,再选择另一条路径...

    8-Puzzle:贪婪最佳优先搜索,广度优先搜索,深度优先搜索

    这个谜题通常用作演示各种搜索算法的理想实例,包括深度优先搜索(DFS)、广度优先搜索(BFS)以及贪婪最佳优先搜索(GBFS)。在这个场景下,我们将深入探讨这些算法如何应用于8拼图问题,并讨论它们各自的优缺点。 ...

    人工智能8数码问题 深度优先、广度优先

    用深优先、宽度优先的搜索方式解决8数码问题

    深度优先搜索算法和广度优先搜索算法解八数码问题

    八数码问题的解决通常涉及两种主要的搜索算法:深度优先搜索(DFS)和广度优先搜索(BFS)。 深度优先搜索是一种递归的搜索策略,它尽可能深地探索树的分支。在八数码问题中,DFS会从当前状态出发,尝试所有可能的...

Global site tag (gtag.js) - Google Analytics