二叉树练习题
Posted 可乐的小屋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树练习题相关的知识,希望对你有一定的参考价值。
一、简答题(写出解题过程)
1.设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1,求树T中的叶子数。
答:8.
解题思路: 应用两个公式:(1) N=N0+1; (2) N=x+x1+x2+x3...+xn;度所对应的结点个数一共为N0=4+4+3+4=15,所以N=16;x为叶子结点,x1=4、x2=2、x3=1、x4=1,所以,x=16-4-2-1-1=8;
2.一棵完全二叉树有500个结点,请问该完全二叉树有多少个叶子结点?有多少个度为1的结点?有多少个度为2的结点?如果完全二叉树有501个结点,结果如何?请写出推导过程。
答:500个结点:叶子结点为250个,度为1的有1个,度为2的有249个;
501个结点:叶子结点为251个,度为1的有0个,度为2的有250个;
解题思路:因为是完全二叉树,叶子结点个数为1+(n-1)/2(向下取整),度为1为(奇0偶1),度为2为(n-1)/2向下取整。
3. 已知一棵二叉树的中根遍历序列和后根遍历序列分别为BDAFEHGC和DBFHGECA,试画出这棵二叉树。
4. 已知二叉树的前序遍历序列是AEFBGCDHIKJ,中序遍历序列是EFAGBCHKIJD,画出此二叉树,并画出它的后序线索二叉树。
二、补全算法中语句
计算二叉数的的深度。
int BtreeDepth (BTreeNode *BT)
{
if (BT= =NULL)
return 0;
else
{
int dep1,dep2;
dep1= BtreeDepth(BT->Lchild);
dep2= BtreeDepth(BT->Rchild);
if (dep1>dep2) dep2=dep1;
return dep2+1 ;
}
以上是关于二叉树练习题的主要内容,如果未能解决你的问题,请参考以下文章