数据结构考点之遍历恢复二叉树及线索化树

尽管知道由遍历恢复二叉树是必考的内容,但真正做起题来,还是费了老长时间,并且查看相关资料后,才得出的答案,可见,多练习才行。虽然的完整的讲义,但只能是做一个参考。真正由做题才能深刻掌握它。

如题:2020年8月

在这里插入图片描述

分析

对于第二问挺生的,本题也没什么,就是个知识点而矣!加深下印象!

解决

第一问,便是由遍历恢复二叉树

这种题型在软考时,已经做烂了,但真正到自考时,还是想不起解题的思路。这里记录一下,以便后序的查看,前提是看了讲义的,才大体恢复起记忆。详见:数据结构复习之二叉树的运算
前序是:a d b c e
中序是:d a c e b
如何恢复唯一的二叉树呢??

解题思路

前序遍历,可以得到什么呢?前序,也叫先根,所以第一个肯定是根结点,结合题目,就是a就是根结点。
中序遍历,可以得到的信息?中序突出的特点是,排在根左面的是左孩子,而排在根右面的就是右孩子。所以,排在根a左面的只有一个结点d,所以a,只有一个左孩子d,但右子树就是ceb了。
理解起来不难,这便是解题的思想。下一步如何再运用这个思想才是关键。
这一步,到少可以得到如下的树:
在这里插入图片描述


只是解决前两个结点的位置关系,还有哪些结点没解决?还是由先根开始,b,那么b就是右子树的根。再看b在中序中的位置,处于最后,那么c e就是b的左子树。可以得到如下树:
在这里插入图片描述

到这一步,只剩下c,e结点位置没有确定了,还是先看先根序列,b之后是c,那么c可以看到是下一棵子树的根,再看中根,e在c的右面,可以断定e是c的右孩子,至此,可在完恢复出二叉树了:
在这里插入图片描述

总结

难是不难,就看你知不知道。考试目的就是考的知识点,若一眼就看出是什么知识点,那么对于应付考试来说,是一点问题都没有。要有意识的往考点上面靠,这才是应对自考数学类课目的关键。
但最终的目的还是实际的编程应用,记住有这个思想就可以了,用到了知道从哪里查就可以。当然这里只能算是应用,算不上思想。真正的思想其实是二叉树概念及后面的查找。

第二问,建立二叉树的后序线索

这一块是新东西,没遇到过。

什么是线索?

针对二叉树的链式结构的二叉链中,有n+1个空着的指针域的情形,利用这些空着的指针,指向前趋或后继(针对的是叶子结点情形)或指向左右孩子(针对的是根结点的情形)。参考:数据结构复习之线索二叉树 森林与二叉树相互转化

建立线索

题目说的是建立并画出,建立的过程就是用线索取代相应的空指针即可,这也是解题思路,画出就是从第一问的最终二叉树图上画出来,同时最好是先写出后根遍历的次序以防出错。
在这里插入图片描述

总结

多看看就可以。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guangod

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值