数据结构 树 思考题3

全部每周作业和视频思考题答案和解析 见 浙江大学 数据结构 思考题+每周练习答案汇总

题目1:给出下面这棵树的中序遍历结果

根据中序遍历的程序:

我们可以看到它先不断往左遍历,然后在分叉处到根节点,再往右边遍历:

首先到b,然后因为b的左边什么都没有,所以再返回到b,打印b

然后再到d,打印d,然后再到a。之后遍历右边,分别依次输出e和c

即最后结果:bdaec

题目2:非递归方法中序遍历下面这颗二叉树,其堆栈操作序列(P代表为push,O代表为pop)是什么?

 

首先a进栈(P),然后b进栈(P),然后再往左边走,没有东西了,所以b出栈(O)

然后b往右边走,d进栈(P),没有东西了,d出栈(O)……

最后的操作顺序:PPOPOOPPOO

 题目3:已知有颗5个结点的二叉树,其前序遍历序列是a????,中序遍历序列是a????,可以断定:

  • A. 该树根结点是a,且没有左子树

  • B. 该树根结点是a,且没有右子树

  • C. 该树最左边的结点是a

  • D. 该树不存在

因为前序遍历的第一个点是根节点,中序遍历的根节点在左子树的右边,该树没有左子树。选A

题目4:假定只有四个结点A、B、C、D的二叉树,其前序遍历序列为ABCD,则下面哪个序列是不可能的中序遍历序列?

  • A. ABCD

  • B. ACDB

  • C. DCBA

  • D. DABC

A为根节点。

选项A有可能:

选项B有可能:

选项C有可能:

而选项D,分析一下,首先根据中序,A在中间,所以左子树的节点只有一个D,而右子树节点是B和C,但问题是根据前序遍历的规则,打印出A以后应该接着打印B,但是若D在左子树,B在右子树,则前序遍历不可能先打印出B再打印出D,所以这种情况不可能。

 

题目5:对于二叉树,如果其中序遍历结果与前序遍历结果一样,那么可以断定该二叉树________

  • A. 是完全二叉树

  • B. 所有结点都没有左儿子

  • C. 所有结点都没有右儿子

  • D. 这样的树不存在

首先我们知道如果中序和前序一样,则每个子树的根节点都是先被打印的,所以每个根节点都没有左子树。

选B

题目6:已知一二叉树的后序和中序遍历的结果分别是FDEBGCA 和FDBEACG,那么该二叉树的前序遍历结果是什么?

后序的最后一个节点是A,则树根节点是A。

根据中序结果,A前面是左子树,即FDBE,后面是右子树CG

然后再对左子树进行剖析,B为左子树的根节点,左子树的左子子树是FD,D为根节点,因为中序遍历先打印了F,所以F为左子树。

又因为中序先打印了C再打印了G,所以G是右子树

树用图表示为:

前序遍历的结果为: ABDFECG

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Dezeming

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

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

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

打赏作者

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

抵扣说明:

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

余额充值