Java笔试题常见知识点:树相关知识点(主要是二叉树)

小题目

  1. 树和二叉树的转换,森林和二叉树的转换:
    树先序<=>二叉树先序
    树后序<=>二叉树中序
    森林先序<=>二叉树先序
    森林中序<=>二叉树中序
  2. 二叉树性质:
    (1)二叉树第i层上结点数<=2^(i-1)
    (2)二叉树深度为k,总结点数<=2^k -1
    (3)二叉树叶子数为n0,度为2的结点数为n2,则n0=n2 +1
    (4)总结点数为n的完全二叉树的深度为logn」+1
    一棵普通二叉树深度范围为[ logn」+1,n]
  3. 赫夫曼树(最优二叉树):根据给定权值集构造赫夫曼树,求带权路径长度
    结点的带权路径长度定义:从该结点到树根之间的路径长度与结点上权值的乘积
    树的带权路径长度定义:树中所有叶子结点的带权路径长度之和
    赫夫曼树(最优二叉树) 定义:带权路径长度最小的二叉树

赫夫曼树没有度为1的结点,构造时尽量满足:权值越大离根结点越近
(通常从最底层开始构造,先找最小的两个权值…)
例题:以数据集{1,6,8,2,9,4}为权值构造一棵赫夫曼树,其带权路径长度为?

                   30
       13                         17
   6         7                8        9            
          3      4                             
        1   2                                     

所以带权路径长度 length =  (6 + 8 + 9) * 2 + 4 * 3 + (1 + 2) * 4
  1. 二叉排序树的平均查找长度:
    按行看,如下图,第一行有一个元素,第二行有2个元素,第三行有3个元素

                45
         24           53
     12     37            93
    

ASL=(11+22+3*3)/6=7/3

  1. 已知序列(50,30,80,20,40,90,35,85,32,88) ,按照依次插入的方法生成二叉排序树,则在该树中查找关键字值为35的结点所需比较次数为?答案是4.
    按次序构造出二叉排序树后,找到目标元素在树中的位置,它在树的第几层(从1开始算),查找该元素就需要比较几次

  2. 红黑树性质
    (1)是平衡排序二叉树
    (2)根结点是黑色,叶子节点都是黑色
    (3)一个结点为红色,则其子结点都为黑色
    (4)从任一结点到其每个叶子结点的所有路径都包含相同数目的黑色结点

算法题

从上往下打印二叉树
https://blog.csdn.net/chao_ji_cai/article/details/96128153
把二叉树打印成多行
https://blog.csdn.net/chao_ji_cai/article/details/97386193
序列化二叉树
https://blog.csdn.net/chao_ji_cai/article/details/97210961
二叉树的下一个结点
https://blog.csdn.net/chao_ji_cai/article/details/97203142
二叉树的镜像
https://blog.csdn.net/chao_ji_cai/article/details/96105310
对称的二叉树
https://blog.csdn.net/chao_ji_cai/article/details/96864345
平衡二叉树
https://blog.csdn.net/chao_ji_cai/article/details/96570545
二叉树的深度
https://blog.csdn.net/chao_ji_cai/article/details/96568282
二叉树中和为某一值的路径
https://blog.csdn.net/chao_ji_cai/article/details/96293729
重建二叉树
https://blog.csdn.net/chao_ji_cai/article/details/95938896

二叉搜索树的第k个结点
https://blog.csdn.net/chao_ji_cai/article/details/97206963
二叉搜索树与双向链表
https://blog.csdn.net/chao_ji_cai/article/details/96425068
二叉搜索树的后序遍历序列
https://blog.csdn.net/chao_ji_cai/article/details/96271541
树的子结构
https://blog.csdn.net/chao_ji_cai/article/details/96101454

你可能感兴趣的:(Java面试)