本文整理汇总了C++中SuffixTree::FChild方法的典型用法代码示例。如果您正苦于以下问题:C++ SuffixTree::FChild方法的具体用法?C++ SuffixTree::FChild怎么用?C++ SuffixTree::FChild使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SuffixTree
的用法示例。
在下文中一共展示了SuffixTree::FChild方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: generateBitmapAux
void generateBitmapAux(pair <size_t,size_t> nodes,BitString *bitmap,uint &bitmap_pos,vector<pair<uint,uint> > &result) {
pair <size_t,size_t> r;
size_t pl_aux = nodes.first;
size_t pr_aux = nodes.second;
size_t next_vl,next_vr;
size_t nsibling_l,nsibling_r;
if (pr_aux - pl_aux != 1) {
// cout << "entre!" << endl;
if (pl_aux == pr_aux) {
bitmap_pos++;
// cout << "(";
bitmap->setBit(bitmap_pos);
// cout << ")";
bitmap_pos++;
//return;
}
result.push_back(make_pair(pl_aux,pr_aux));
}
cst->FChild(pl_aux, pr_aux, &next_vl, &next_vr);
cst->NSibling(pl_aux,pr_aux,&nsibling_l,&nsibling_r);
r = make_pair(next_vl,next_vr);
if (next_vl != (size_t)-1 && next_vr != (size_t)-1) {
if (next_vl == next_vr) {
generateBitmapAux(r,bitmap,bitmap_pos,result);
} else {
bitmap_pos++; // leave a 0
// cout << "(";
generateBitmapAux(r,bitmap,bitmap_pos,result);
// cout << ")";
bitmap->setBit(bitmap_pos);
bitmap_pos++;
pl_aux = next_vl;
pr_aux = next_vr;
}
}
if (nsibling_l != (size_t)-1 && nsibling_r != (size_t)-1) {
r = make_pair(nsibling_l,nsibling_r);
if (nsibling_l == nsibling_r) {
generateBitmapAux(r,bitmap,bitmap_pos,result);
} else {
bitmap_pos++;
// cout << "(";
generateBitmapAux(r,bitmap,bitmap_pos,result);
// cout << ")";
bitmap->setBit(bitmap_pos);
bitmap_pos++;
}
}
}