带有返回值的递归 并行
信谦 2008-05-16 11:47:20 大家好,我最近用OpenMP在vC2005上做毕业设计,由于首次接触,有很多弱智问题;
带有返回值的递归函数可以并行吗?我试过很多方法都没成功
BOOL SearchHuff(CString & cst,PHuffNode hnode,int deep,unsigned char & oc)
{
//是否适合并行了(性能如何)?
if(cst.GetAt(deep) == '0') //左子树
{
if(!hnode->lChild->lChild)
{
oc = hnode->lChild->cKey;
cst.Delete(0,deep+1);
return TRUE;
}else
return SearchHuff(cst,hnode->lChild,deep+1,oc);
}
if(cst.GetAt(deep) == '1') //右子树
{
if(!hnode->rChild->lChild)
{
oc = hnode->rChild->cKey;
cst.Delete(0,deep+1);
return TRUE;
}else
return SearchHuff(cst,hnode->rChild,deep+1,oc);
}
return false;
}
这个可以并行吗,方法如何,谢谢