请教一下数据结构 二叉树的先序遍历 中序遍历 后序遍历 是怎么弄的

后续遍历怎么是debfca呢... 后续遍历怎么是debfca 呢 展开
 我来答
老冯文库
推荐于2017-09-30 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8734

向TA提问 私信TA
展开全部
所谓先序、中序和后序的区别在于访问根的时机,分别是BLR、LBR和LRB,其中B、L、R分别表示根结点、根结点的左子树和根结点的右子树。
以后序遍历为例进行讲解。

后序遍历算法:
(1) 后序遍历根结点的左子树;
(2) 后序遍历根结点的右子树。
(3) 访问二叉树的根结点;

你的方法是将树分解为根、左子树、右子树,再将子树继续按前述方法分解,直至每一部分只剩一个结点或空为止。

对该图,分解为
根(a),根的左子树(bde,不分先后),根的右子树(cf,不分先后)
故后序的基本顺序是(bde)、(cf)、(a)

同样的道理,对(bde)和(cf)也进行分解:
根(b)、左子树(d)、右子树(e) 后序的基本顺序是deb
根(c)、左子树(空)、右子树(f) 后序的基本顺序是fc

整合起来就是:d e b f c a
luosiyong
2011-05-06 · TA获得超过3256个赞
知道大有可为答主
回答量:1090
采纳率:0%
帮助的人:1627万
展开全部
后序遍历就是:
后序遍历左子树
后序遍历右子树
输出根节点
如图举例就是:
左子树为bde三个节点
。。左子树的左子树为d
。。左子树的右子树为e
。。左子树的根为b
左子树后序遍历为deb。

右子树为fc两个节点
。。右子树的左子树不存在
。。右子树的右子树为f
。。右子树的根为c
右子树后序遍历为fc

整个树的根为a

所以就是 debfca
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友43471d6
2011-05-07 · 超过13用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:35.2万
展开全部
先序遍历 根左右abdecf
中序遍历 左根右dbeacf
后序遍历 左右根debfca
后序,你先看左枝,最左面的是d,接着在d右边的是e,而d和e是b的分支,按照“左右根”的顺序,就是deb,然后以此类推,看a的右分支,f是c的右分支,写下来就是fc,然后再根据“左右根”,结果就是debfca
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孤松独海
2011-05-06 · TA获得超过1513个赞
知道大有可为答主
回答量:1220
采纳率:0%
帮助的人:491万
展开全部
无论是先中后序遍历,对于子节点都是先左节点后右节点的,后序遍历是先遍历子节点,
则开始找a的左边,再找b的左边 d 右边e 接着b 这样a的左边遍历完 再遍历右边先遍历c的子节点f 再c 最后根节点a 则就是debfca
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
duqiyu2151
2011-05-06 · TA获得超过786个赞
知道小有建树答主
回答量:697
采纳率:0%
帮助的人:394万
展开全部
后序遍历是:左、右、根
即,先遍历左结点,再遍历右结点,再遍历根结点
根据你的图
先遍历a的左结点,由于a的左结点b还有左结点,所以就先遍历到d了,然后就是b的右结点
算法可以如下设计:

void PostOrder(BTNode *r)
{
if(r != NULL)
{
PostOrder(r->lchild);
PostOrder(r->rchild);
cout << r->data << " ";
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式