二叉树类似题总结

一、二叉树的遍历

1.知识点

        二叉树的遍历是指按照某种搜索路径遍历每个结点且不重复,它是树结构插入、删除、修改、查找和排列运算的前提,是二叉树的一切运算的基础和核心。二叉树的遍历可分为三种:先序遍历、中序遍历、后序遍历。

1. 先序遍历:首先访问根结点,然后遍历左子树,最后遍历右子树。
2. 中序遍历:首先遍历左子树,然后访问根结点,最后遍历右子树。
3. 后序遍历:首先遍历左子树,然后遍历右子树,最后访问根结点。

2.例题 

1-3、设一棵二叉树的中序遍历序列:badce,后序遍历序列:bdeca,则二叉树先序遍历序列为()

A、adbce

B、decab

C、abcde

D、debac

解:

2-9、对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用()次序的遍历实现编号。

A、先序

B、中序

C、后序

D、层次遍历

解:由于每个结点的编号大于其左、右孩子的编号,所以先遍历该结点的孩子,再遍历该结点。在一结点的左、右孩子中,其左孩子的编号小于其右孩子的编号,所以先遍历左孩子再遍历右孩子。由此可知,遍历的顺序为:左孩子→右孩子→根结点。可采用后序次序的遍历实现编号。

2-10、已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为()。

A、CBEFDA

B、FEDCBA

C、CBEDFA

D、不定

解:

二、算结点数

1.知识点:

涉及到算二叉树结点的知识点主要有:

1. 二叉树的节点数计算:对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1。

推导:节点数N = N0 + N1 + N2 = k + 1;

           边数K = N1*1 + N2*2;

          两式相减 : N0= N2 +1

             
2. 完全二叉树的节点数计算:具有n个结点的完全二叉树的深度为K =[log2n」+1(取下整数)。
3. 二叉树的遍历:二叉树的遍历有三种基本方式:前序遍历、中序遍历和后序遍历。每种遍历方式都会访问二叉树中的每个节点一次。

4.完全二叉树的特点包括:

  1. 叶子结点只能出现在最下层和次下层。
  2. 最下层的叶子结点集中在树的左部。
  3. 倒数第二层若存在叶子结点,一定在右部连续位置。
  4. 如果结点度为1,则该结点只有左孩子,即没有右子树。
  5. 同样结点数目的二叉树,完全二叉树深度最小。

2.例题 

1-9、设一棵完全二叉树有700个结点,则共有()个叶子结点。

A、300

B、350

C、550

D、700

解:由二叉树的性质可知:n0=n2+1,而n=n0+n1+n2

由上述公式把n2消去得:n=2n0+n1-1,由于完全二叉树中度为1的结点数只有两种可能0或1,

由此得到n0=(n+1)/2或n0=n/2,就可根据完全二叉树的结点总数计算出叶子结点数。

3-1、已知一棵完全二叉树的第6层(设根为第1层)有6个叶子结点,则该完全二叉树的结点个数最多是()。

A、37

B、51

C、115

D、121

解:由题意可知为6/7层
问结点个数最多→7层
完全二叉数特点:除最后一层为满二叉数,前六层为2^6-1=63,第七层若满为2^6=64。
已知有6个叶子结点(第6层),一结点对应二个子结点2x6=12个

故63+64-12=115个

4-8、已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则该完全二叉树的节点个数最少为()。

A、119

B、111

C、52

D、39

解:由题意可知为6/7层
问结点个数最少→6层
完全二叉数特点:除最后一层为满二叉数,前五层为2^5-1=31
已知有8个叶子结点(第6层),31+8 = 39。

8、设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1则T中的叶子数为()。

A、5

B、6

C、7

D、8

解:边k=1x4+2x2+3x1+4x1=15    
N =k+1=N0+N1+N2+N3+N4=N0+4+2+1+1=8+N0
N0 = 16 - 8 = 8。 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值