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);
思路二:画图。