数据结构中二叉树递归的遍历问题 15

这样写StatusPreOrderTraverse(BiTreeT){if(T){if(Visit(T->data))if(PreOrderTraverse(T->lch... 这样写

Status PreOrderTraverse(BiTree T)
{
if(T)
{
if(Visit(T->data))
if(PreOrderTraverse(T->lchild))
if(PreOrderTraverse(T->rchild))
return OK;
return ERROR;
}
else
return OK;
}
和这样写
void InOrderTraverse( BiTree T ) {
if(T!=NULL)
{
//return;
InOrderTraverse(T->lchild);
Visit(T->data);
InOrder
}
}

有什么区别呢

第一个的几个return分别有什么用呢?
展开
 我来答
右手毅丝温暖
2015-05-12 · TA获得超过248个赞
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:63万
展开全部
第一个return,继续向下访问该节点的左右子节点,
第二个return,Visit(T->data)失败
第三个return,访问某一分支到了叶子节点

第二段你写漏了吧,应该还有 InOrderTraverse(T->rchild);
这段是先序遍历(左子节点,父节点,右子节点),前者是中序遍历(父节点,左子节点,右子节点)
追问
那个复制的时候漏复了。。我知道这是什么遍历,我想问的是这两种写法有什么区别呢?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式