CareerCup 4.2
来源:互联网 发布:销售数据分析 编辑:程序博客网 时间:2024/05/06 10:54
4.2 Given a directed graph, design an algorithm to find out whether there is a route between two nodes.
#include <iostream>#include <vector>#include <queue>using namespace std;struct GraphNode { enum State {unvisited, visited, visiting} state; vector<GraphNode*> adjacentNodes; GraphNode(void) : state(unvisited) {}};void initNodeState(vector<GraphNode> &g) { for (GraphNode &node : g) { node.state = GraphNode::unvisited; }}bool BFS(GraphNode *a, GraphNode *b) { queue<GraphNode*> q; a->state = GraphNode::visiting; q.push(a); while (!q.empty()) { GraphNode *curr = q.front(); q.pop(); for (GraphNode *next : curr->adjacentNodes) { if (next->state == GraphNode::unvisited) { if (next == b) { return true; } else { next->state = GraphNode::visiting; q.push(next); } } } } return false;}int main() { vector<GraphNode> g(4); g[0].adjacentNodes.push_back(&g[1]); g[1].adjacentNodes.push_back(&g[2]); initNodeState(g); if (BFS(&g[0], &g[2])) { cout << "Connected" << endl; } return 0;}
- CareerCup-4.2
- CareerCup 4.2
- CareerCup 1.3
- CareerCup 1.4
- CareerCup 5.7
- CareerCup 14.6
- CareerCup 1.1
- CareerCup 1.2
- CareerCup 1.3
- CareerCup 1.4
- CareerCup 1.5
- CareerCup 1.6
- CareerCup 1.7
- CareerCup 1.8
- CareerCup 2.1
- CareerCup 2.2
- CareerCup 2.3
- CareerCup 2.4
- java.lang.UnsupportedClassVersionError: Bad version number in .class file
- CSS规范 - 最佳实践
- 第10讲:Decorator 装饰模式
- Java深入 - Json
- cassandra (2)Understanding the Architecture【About snitches】
- CareerCup 4.2
- C中调用shell 脚本
- android 源码编译
- 第11讲:Facade 外观模式
- Struts2+Spring3+Hibernate3 SSH框架整合实现CRUD
- 泛型编程
- CSS规范 - 典型错误
- 最小生成树—普里姆算法
- iOS开发的2D绘制--CoreGraphics的简单使用一(画线条)