树学习(3)

来源:互联网 发布:商业计划书的优化答案 编辑:程序博客网 时间:2024/06/02 13:49

1、       非空的平衡二叉树中插入一个节点,原有节点中至少一个节点的平衡因子会改变。

分析:一旦插入一个节点原先节点至少会有一个节点的平衡因子会改变。

平衡因子=H左子树-H右子树,即使插入结点后不改变原二叉树的平衡性,平衡因子也会改变。

 

2、       已知一棵树的先序、中序、后序序列,还原这颗树需要?

分析:还原树必须要知道包括中序序列在内的任意两种序列。即后序+中序、前序+中序。

 

3、       在二叉树结点的前序、中序、后序序列中,所有叶结点的先后顺序:完全相同、

分析:三个遍历的次序和特点,前序为根左右,中序是左根右,后序是左右根,因此相对次序发生变化的都是子树的根,也就是分支结点。叶节点的先后顺序不变。

结点位置是不变的,只是遍历的方法不同。变化的只是非叶子结点的位置,叶子结点的相对位置是不变的。

 

4、       给定n个结点的二叉搜索树,每个节点的值是整数。给定一个整数,在树中找出与该整数最接近的结点的最小算法复杂度是:O(log n)

分析:平衡二叉树的时间复杂度是log(n),如果二叉树的元素个数为n,那么不管对树进行插入结点、查找、删除节点都是Log(n)次循环调用就可以了。

这个问题是问最小的情况,那么就要考虑最优条件。

 

二叉搜索树的遍历,每次只向一个子树搜素,大概相当于二分查找的效率、

 

5、       在一颗度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶节点的个数是 82.

分析:除了根结点外,树的每个节点都有唯一的一个入度,因此计算出共有多少个出度,再加1就是树中总的结点数目。也就是20*4+10*3+1*2+10*1+1=123个。而四叉树里结点就5类,有4个孩子的,有3个孩子的,有2个孩子的,有1个孩子的,没有孩子的,现在前4类的数目知道了,即20+10+1+10=41,所以没有孩子的结点为123-41=82个。

 

6、       对一颗二叉树进行后续遍历,其输出结果为A,B,C这样的二叉树有5棵。

思路一:卡特兰树公式计算。C(2N,N)/(N+1);

思路二:画图。


原创粉丝点击