本文整理汇总了C++中GraphNode::visited方法的典型用法代码示例。如果您正苦于以下问题:C++ GraphNode::visited方法的具体用法?C++ GraphNode::visited怎么用?C++ GraphNode::visited使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GraphNode
的用法示例。
在下文中一共展示了GraphNode::visited方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: move
void Graph::move(vec3d amount){
if (selectednodes.size() > 0) {
int selectednodeindex = selectednodes.back();
GraphNode * selected = adjlist.at(selectednodeindex);
selected->visited(true);
vector<GraphNode * > level0 = selected-> nodesvec();
vector < vector< GraphNode* > > visitednodes;
visitednodes.push_back(level0);
traverse(visitednodes);
//printf("size of visitednodes: %d \n", visitednodes.size());
//do the actual move
selected -> move(amount);
for (int v=0; v<visitednodes.size(); v++) {
amount = amount * 0.4;
vector<GraphNode * > lv = visitednodes.at(v);
for (int n=0; n<lv.size(); n++) {
GraphNode * g = lv.at(n);
g->move(amount);
}
}
//unmark all nodes
for (int a=0; a<adjlist.size(); a++) {
adjlist.at(a)->visited(false);
}
}
else printf("Graph:move no valid selected node \n");
}
示例2: traverse
void Graph::traverse(vector < vector <GraphNode* > > & bftr){
//recursive implementation
vector<GraphNode *> level = bftr.at(bftr.size()-1);
vector<GraphNode *> newlevel;
for (int l=0; l<level.size(); l++) {
vector<GraphNode *> nodes = level.at(l) -> nodesvec();
for (int n=0; n<nodes.size(); n++) {
GraphNode * g = nodes.at(n);
if (! ( g->isVisited() ) ) { //unvisited sibling
newlevel.push_back(g);
g->visited(true);
}
}
}
if (newlevel.size() > 0 ) {
//printf("next level size: %d \n", newlevel.size());
bftr.push_back(newlevel);
traverse(bftr);
}
}