当前位置: 首页>>代码示例>>C++>>正文


C++ Digraph::V方法代码示例

本文整理汇总了C++中Digraph::V方法的典型用法代码示例。如果您正苦于以下问题:C++ Digraph::V方法的具体用法?C++ Digraph::V怎么用?C++ Digraph::V使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Digraph的用法示例。


在下文中一共展示了Digraph::V方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: order

/*	@brief construct a SCC with a graph and compute 
 *		strongly connected component
 *	@param dg	Digraph
 */
SCC::SCC(const Digraph &dg){
	//initialize private menber
	marked = vector<bool>(dg.V(),false);
	__id = vector<int>(dg.V());
	__count = 0;
	for(int i=0; i<dg.V(); ++i){
		__id[i] = i;
	}

	//dg's reverse graph
	const Digraph rdg = dg.reverse();
	//rdg's order
	DFSOrder order(rdg);
	//reverse order of dg's reverse graph
	deque<int> reverseOrder = order.reverseOrder();
	//depth first searh in reverseOrder 
	__count = 0;
	int num = reverseOrder.size();
	for(int i=0; i<num; ++i){
		int v = reverseOrder[i];
		if( !marked[v] ){
			dfs(dg,v);
			//search one strongly connected component
			++__count;
		}
	}
}
开发者ID:ChengduoZhao,项目名称:cxxlib,代码行数:31,代码来源:digraph.cpp

示例2:

DirectedDFS::DirectedDFS(const Digraph &dg, const std::vector<int> &sources){
	marked = vector<bool>(dg.V(), false);
	edgeTo = vector<int>(dg.V());
	srcs = set<int>(sources.begin(), sources.end());
	for(size_t i=0; i<sources.size(); ++i){
		if( !marked[ sources[i] ] ){
			dfs(dg, sources[i] );
		}
	}
}
开发者ID:ChengduoZhao,项目名称:cxxlib,代码行数:10,代码来源:digraph.cpp


注:本文中的Digraph::V方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。