二叉树

来源:互联网 发布:golang redis expire 编辑:程序博客网 时间:2024/06/15 16:05

 

1、N个结点的二叉树有多种形态:(2*n)!/(n+1)!*n!)

2、二叉树的遍历:前序根左右,中序左根右,后序左右根。

3、深度为h的二叉树最多有2^h-1个节点。

4、从根开始按层次(0->1->2)遍历一颗二叉树,需要辅助使用队列。

5、满二叉树:除了叶节点外每一个结点都有左右子女且叶节点都处在最底层的二叉树。这个满二叉树应该很好想象,就是一颗非常完美的树,除了叶节点其他节点都有两个孩子。

6、完全二叉树:只有最下面的两层结点度小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。也就是说,在满叉树的基础上,我在最底层从右往左删去若干节点,得到的都是完全二叉树

7、平衡二叉树:又称为AVL树,它是一颗空树或它的左右两个子树的高度差的绝对值不超过1

哈夫曼树:带权路径长度达到最小的二叉树,也叫做最优二叉树。

注意到这里,哈夫曼树只是一棵最优二叉树,不一定是完全二叉树,也不一定是平衡二叉树。完全是八竿子打不着的事情,人家哈夫曼树不关注树的结构,只关注带权路径长度。


1.对于一棵有着k层的二叉树,最多有节点个数为 2^k-1,最少有k个节点

2.对于第k层,最多有节点个数为 2^(k-1)

3.对于一棵非空的二叉树,叶子节点数目总比度为2的节点数要多1



原创粉丝点击