有向路径检查
来源:互联网 发布:网络没sei了什么意思 编辑:程序博客网 时间:2024/06/11 17:05
题目描述
对于一个有向图,请实现一个算法,找出两点之间是否存在一条路径。
给定图中的两个结点的指针UndirectedGraphNode* a,UndirectedGraphNode* b,请返回一个bool,代表两点之间是否存在一条路径(a到b或b到a)。
算法:
广度优先遍历。因为是有向图,所以以a开头遍历一次,以b开头遍历一次。
遍历的过程中如果找到了另一个结点,说明有路径,如果遍历结束后扔没有找到,则没有路径
struct UndirectedGraphNode { int label; vector<struct UndirectedGraphNode *> neighbors; UndirectedGraphNode(int x) : label(x) {}};class Path {public: bool checkroute(UndirectedGraphNode *a,UndirectedGraphNode* b){ if(a == NULL || b == NULL) return false; if(a == b) return true; queue<UndirectedGraphNode*> q; q.push(a); a->label = -1; while (!q.empty()){ UndirectedGraphNode* now = q.front(); q.pop(); vector<UndirectedGraphNode*> nh = now->neighbors; vector<UndirectedGraphNode*> :: iterator lt; for (lt = nh.begin();lt != nh.end();lt++){ if(*lt == b) return true; //把没有访问过的结点继续放入队列 UndirectedGraphNode* p = *lt; if(p->label != -1){ q.push(p); p->label = -1; } } } return false; } bool checkPath(UndirectedGraphNode* a, UndirectedGraphNode* b) { // write code here return checkroute(a,b) || checkroute(b,a); }};
0 0
- 有向路径检查
- 有向路径检查
- 有向路径检查
- 有向路径检查
- 有向路径检查
- 有向路径检查
- 第八天 有向路径检查
- 检查图中的有向路径
- 《程序员面试金典》有向路径检查
- 程序员面试金典题解 有向路径检查
- 程序员面试金典-4.2有向路径检查
- 程序员面试金典:二叉树平衡检查、有向路径检查
- 有向图最短路径
- 有向图 路径
- 程序员面试金典——有向路径检查(图)
- Dijkstra 有向图单源最短路径
- 稀疏有向图最短路径
- 有向无环图求单源最短路径问题
- poj2752 KMP水题
- mapView的基本使用
- POJ 3233 Matrix Power Series (矩阵乘法+快速幂+等比二分求和) -
- python实战技巧1:安装MYSQL Connector
- 系统导航
- 有向路径检查
- 验证码识别
- find命令删除n天以前的数据
- 《Mimics软件临床应用:计算机辅助外科手术》目录摘要
- Tomcat8.x 启动start()->上下文发布->上下文中web.xml文件解析
- Android面试整理之UI部分——实现View的弹性滑动的三种方式(二)
- Java注释
- CodeForces 471D MUH and Cube Walls
- 调用android的getColor()方法出现 java.lang.NoSuchMethodError: android.content.res.Resources.getColor