*13.有向路径检查

题目描述

对于一个有向图,请实现一个算法,找出两点之间是否存在一条路径。

给定图中的两个结点的指针UndirectedGraphNode* a,UndirectedGraphNode*b(请不要在意数据类型,图是有向图),请返回一个bool,代表两点之间是否存在一条路径(a到b或b到a)。

思想:广度优先搜索

模板代码如下:

public  enum State{
    Unvisited,Visited,Visiting;
}

public static boolean search(Grapth g,Node start,Node end){
    //当做队列使用
    LinkedList<Node> q=new LinkedList<Node>();
    for(Node u:g.getNodes()){
       u.state=State.Unvisited;
    }
    start.state=State.Visiting;
    q.add(start);
    Node u;
    while(!q.isEmpty()){
        u=q.removeFirst();
        if(u!=null){
           for(Node v:u.getAdjacent()){
             if(v.state==State.Unvisited){
                 if(v==end){
                     return true;
                 }else{
                     v.state=State.Visiting;
                     q.add(v);
                 }
             }
           }
         u.state=State.Visited;
        }
    }
    return false;
}

  

方法2:存疑。代码如下:

import java.util.*;

/*
public class UndirectedGraphNode {
    int label = 0;
    UndirectedGraphNode left = null;
    UndirectedGraphNode right = null;
    ArrayList<UndirectedGraphNode> neighbors = new ArrayList<UndirectedGraphNode>();

    public UndirectedGraphNode(int label) {
        this.label = label;
    }
}*/
public class Path {
    public boolean checkPath(UndirectedGraphNode a, UndirectedGraphNode b) {

        return check(a,b) || check(b,a);
    }
    boolean check(UndirectedGraphNode a, UndirectedGraphNode b){
        if(a==b) return true;
        for(int i=0;i<a.neighbors.size();i++){
            return check(a.neighbors.get(i),b);
        }
        return false;
    }
}

  

时间: 2024-11-15 16:38:29

*13.有向路径检查的相关文章

Confluence 6 WebDAV 禁用严格路径检查

如果你在你的 WebDAV 客户端发现了一些不正常的现象,例如文件夹在 Confluence 中是存在的,但是在你客户端下载的文件中就不存在了.你可以禁用  WebDAV 插件中的严格路径检查选项,这个选项能够帮你缩小你遇到的问题. 希望禁用 WebDAV 插件中的严格路径检查选项: 在屏幕的右上角单击 控制台按钮 ,然后选择 General Configuration 链接. 在左侧边栏中选择 WebDav 配置(WebDav Configuration'). 取消选择 'Disable st

DAG情况下如何移动数据库路径

移动数据库路径的场景很多,典型的场景是因为磁盘空间不够用了,想移动到另一个盘,移动数据库路径有向导并不难,但是如果启用了DAG 的情况下,就有一些注意事项,以下说明. PS:如果需要移动数据库路径,就必须要先卸载需要移动的数据库,所以最好在在非工作时间进行迁移. 以下就以 IT 这个数据库示范,MBX1和 MBX2 上启用了 DAG,MBX1 上的 IT数据库处于活动状态,MBX2 上的 IT 数据库处于复制状态: 卸除数据库 删除IT数据库的副本,因为IT 数据库只有 MBX2 服务器上 1

如何用dumpbin.exe检查编译器生成的托管模块所嵌入的信息

开启CMD 运行到dumpbin目录下:D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin 运行命令VCVARS32.BAT,配置环境 如果不运行vcvars32.bat,会出现如下提示: 运行dumpbin命令 ? ? D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin>dumpbin /exports E: DSTCode\Web\DSTWeb\bin\DSTW

反向路径过滤——reverse path filter

原文地址:反向路径过滤——reverse path filter 作者:pwp_cu 反向路径过滤——reverse path filter 一.原理先介绍个非对称路由的概念参考<Understanding Linux Network Internals>三十章,30.2. Essential Elements of RoutingSymmetric routes and asymmetric routesUsually, the route taken from Host A to Host

密码复杂度检查函数

密码复杂度检测.py 1 import re 2 ''' 3 接口调用示例: 4 import 密码复杂度检测 as pc 5 6 while True: 7 str1 = input("请输入密码> ").strip() 8 if pc.check_password_complexity(str1,2): 9 print("%s复杂度符合要求"%str1) 10 break 11 12 13 密码复杂度检查,包括两种复杂度检查, 14 level=1时, 1

检查Oracle 中死事务的语句

SQL> SELECT KTUXEUSN, KTUXESLT, KTUXESQN, /* Transaction ID */ 2 KTUXESTA Status, KTUXECFL Flags ,KTUXESIZ 3 FROM x$ktuxe 4 WHERE ktuxesta!='INACTIVE'; KTUXEUSN KTUXESLT KTUXESQN STATUS FLAGS KTUXESIZ ---------- ---------- ---------- ----------------

solr特点四: SpellCheck(拼写检查)

接下来,我将介绍如何向应用程序添加 “您是不是要找……”(拼写检查). 提供拼写建议 Lucene 和 Solr 很久以前就开始提供拼写检查功能了,但直到添加了 SearchComponent架构之后,这些功能才可以无缝使用.现在您可以输入一个查询,让它不仅返回查询结果,并且为查询词语提供拼写建议(如果存在的话).然后可以利用这些建议像 Google 那样显示 “您是不是要找……”,或者像 Yahoo! 那样显示 “请尝试……”. 集成拼写检查的妙处在于它能够(而且必须)根据索引中的标记给出建议

Python练习题9(密码判断):请写一个密码安全性检查的代码代码: 首先判断密码的强度,如果结果是低或中则打印如何提升密码安全级别的提示,而高则直接退出

'''请写一个密码安全性检查的代码代码:首先判断密码的强度,如果结果是低或中则打印如何提升密码安全级别的提示,而高则直接退出 # 密码安全性检查代码## 低级密码要求:# 1. 密码由单纯的数字或字母组成# 2. 密码长度小于等于8位## 中级密码要求:# 1. 密码必须由数字.字母或特殊字符(仅限:[email protected]#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合# 2. 密码长度不能低于8位## 高级密码要求:# 1. 密码必须由数字.字母及特殊字符

E9学习笔记-LTIB安装配置

转自:http://blog.csdn.net/girlkoo/article/details/44535979 LTIB: Linux Target Image Builder Freescale提供了I.MX6的BSP开发包,可以在Freescale的官网下载到.为了与天嵌提供的版本一致,本文使用的BSP版本是:L3.0.35_4.1.0_130816_source,这版本的内核是3.0.35版本的,u-boot是2009.8版本的.使用这个版本的BSP可以充分使用天嵌提供的源码包,参考天嵌