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


C++ NodeTree::getRoot方法代码示例

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


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

示例1: applyToEachNodePO

void applyToEachNodePO(NodeTree& nt, const NodeAction& action) {

  /// PO-traversal requires two stacks
  std::stack<VisualNode*> stk_1;
  std::stack<VisualNode*> stk_2;

  auto* root = nt.getRoot();
  auto& na = nt.getNA();

  stk_1.push(root);

  while (stk_1.size() > 0) {
    auto* node = stk_1.top(); stk_1.pop();

    stk_2.push(node);

    for (auto i = 0u; i < node->getNumberOfChildren(); ++i) {
      auto kid = node->getChild(na, i);
      stk_1.push(kid);
    }
  }

  while (stk_2.size() > 0) {
    auto* node = stk_2.top(); stk_2.pop();

    action(node);
  }

}
开发者ID:cp-profiler,项目名称:cp-profiler,代码行数:29,代码来源:tree_utils.cpp

示例2: highlightSubtrees

void highlightSubtrees(NodeTree& nt, const std::vector<VisualNode*>& nodes) {

  QMutexLocker lock(&nt.getMutex());

  auto& na = nt.getNA();
  auto* root = nt.getRoot();

  root->unhideAll(na);

  {
    QMutexLocker lock(&nt.getLayoutMutex());
    root->layout(na);
  }

  // unhighlight all
  applyToEachNode(nt, [](VisualNode* n) {
    n->setHighlighted(false);
  });

  for (auto node : nodes) {
    node->setHighlighted(true);
  }

  // TODO: hide not highlighted
  // HideNotHighlightedCursor hnhc(root, na);
  // PostorderNodeVisitor<HideNotHighlightedCursor>(hnhc).run();

  nt.treeModified();

}
开发者ID:cp-profiler,项目名称:cp-profiler,代码行数:30,代码来源:tree_utils.cpp

示例3: calculateMaxDepth

int calculateMaxDepth(const NodeTree& nt) {

  const auto& na = nt.getNA();
  const auto* root = nt.getRoot();

  return calcDepth(na, root);
}
开发者ID:cp-profiler,项目名称:cp-profiler,代码行数:7,代码来源:tree_utils.cpp

示例4: gatherNodeStats

Statistics gatherNodeStats(NodeTree& nt) {
  Statistics stats;

  auto* root = nt.getRoot();

  applyToEachNode(nt, root, [&stats](VisualNode* n) {
    switch (n->getStatus()) {
      case SOLVED:
        stats.solutions += 1; break;
      case FAILED:
        stats.failures += 1; break;
      case BRANCH:
        stats.choices += 1; break;
      case UNDETERMINED:
        stats.undetermined += 1; break;
      default:
        break;
    }
  });

  stats.maxDepth = calculateMaxDepth(nt);

  return stats;
}
开发者ID:cp-profiler,项目名称:cp-profiler,代码行数:24,代码来源:tree_utils.cpp


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