OJ lintcode 图中两个点之间的路线

给出一张有向图,设计一个算法判断两个点 s 与 t 之间是否存在路线。


这个图的数据结构是vector<DirectedGraphNode> graph;
graph是一个vector,vector里面的每一个元素都是图里面的结点,比如a,b,c,d等
每一个元素的类型都是DirectedGraphNode
,通过neighbors可以访问这个结点指向的其他结点。

class Solution {
public:
    /**
     * @param graph: A list of Directed graph node
     * @param s: the starting Directed graph node
     * @param t: the terminal Directed graph node
     * @return: a boolean value
     */
    void Push_neighbors(queue<DirectedGraphNode*>& q,DirectedGraphNode * target){
        for(int i=0;i<target->neighbors.size();i++){
            q.push(target->neighbors[i]);
        }
    }


    bool hasRoute(vector<DirectedGraphNode*> graph,DirectedGraphNode* s, DirectedGraphNode* t) {
        // write your code here
        //创建一个队列
        if(s==t){
            return true;
        }

        queue<DirectedGraphNode*> q;
        map<DirectedGraphNode*,bool> visitnode;

        //将s的相邻结点加入到队列
        for(int i=0;i<s->neighbors.size();i++){
            q.push(s->neighbors[i]);
        }
        
        while(q.empty()==false){
            //获得队列的第一个元素
            DirectedGraphNode * target=q.front();
            q.pop();

            //结点已经访问
            if(visitnode[target]==true){
                continue;
            }
            visitnode[target]=true;
            
            if(target==t){
                return true;
            }
            else{
                //target 不是t,那么将target的相邻结点加入到队列
                Push_neighbors(q,target);
            }
        }
        return false;
    }
};

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • B树的定义 一棵m阶的B树满足下列条件: 树中每个结点至多有m个孩子。 除根结点和叶子结点外,其它每个结点至少有m...
    文档随手记阅读 14,594评论 0 25
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,357评论 0 33
  • 课程介绍 先修课:概率统计,程序设计实习,集合论与图论 后续课:算法分析与设计,编译原理,操作系统,数据库概论,人...
    ShellyWhen阅读 6,944评论 0 3
  • 第一章 绪论 什么是数据结构? 数据结构的定义:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 第二章...
    SeanCheney阅读 11,120评论 0 19
  • 小凡。 是一个患了青春期精神分裂和社交恐惧的20岁男孩。也是爱奇艺里纪录片《心理现场》第三第四集的主人公。 这在两...
    山玉阅读 3,576评论 0 0

友情链接更多精彩内容