带有返回值的递归 并行

信谦 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;
}

这个可以并行吗,方法如何,谢谢
...全文
132 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
信谦 2008-05-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 intel_www 的回复:]
试过OpenMP 3.0 中新加入的Task Construct 吗?
[/Quote]
我刚才试过了parallel taskq任务队列,可以了
谢谢
信谦 2008-05-16
  • 打赏
  • 举报
回复
没有,你用过了吗、、
我试试,谢谢
intel_www 2008-05-16
  • 打赏
  • 举报
回复
试过OpenMP 3.0 中新加入的Task Construct 吗?

568

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧