树:n个节点的有序集合
特点:有且只有一个根节点,其余节点可以分为n个互不相交的有限集合
度:一个节点子树的个数称之为该节点的度
树叶:度为0的节点(又称“叶子节点”)
深度(高度):当前树的最大层数
树种的根节点层数为1,树中节点层数最大值称为树的深度(或高度)。
二叉树:树中的每个节点的分支都不超过2的树称为二叉树
完全二叉树:
深度为h,除第h层外,其余所有层的节点数都达到最大(每个节点都有两个子节点),第h层所有的节点都连续集中在最左边,这就是完全二叉树。
(1)叶子节点只能出现在最后两层
(2)任意的叶子节点,若其左右分支下的子孙最大层为L,则左分支下的子孙最大层必为L或L+1
满二叉树:
满二叉树里面包含完全二叉树,除了根节点外,其余每一层都有两个子节点的二叉树就叫满二叉树
二叉树的相关性质:
1:二叉树的第i层上至多有2k-1个节点,(i>=1)
2:深度为k的二叉树至多有2k-1个节点(k>=1)
3:任意的二叉树 T,若其终端节点数为n0,度为2的节点数为n2,则:n0 = n2 +1
Prove:
4:深度为k且含有2k-1个节点的二叉树为满二叉树
满二叉树:每一层i的节点数都具有最大值2i-1。
6:n个节点的完全二叉树,其深度k = I_log2n _I + 1。(外层是一个向下取整符号)
7:n个节点的完全二叉树,按照层序编号,从左至右,对于任意的节点i
若i = 1:则节点i为根,无双亲
若i > 1:则其双亲 Parent(i) = (i/2)向下取整。
若2i > n ,则节点i无左孩子 。(i为叶子节点)
若2i <= n ,则其左孩子Lchild(i) = 2i
若2i + 1 > n ,则节点i无右孩子
若2i + 1 <= n,则其右孩子Rchild(i) = 2i + 1
8:在一颗度为m的树中,度为1的节点数为n1,度为2的节点数为n2,……,度为m的节点数为nm,
则叶子节点数:
n0 = 1 + n2 + 2n3 + ……+(m-1)nm
9:二叉树中除了左子树和根节点来源于森林中的第一棵树,其余节点来源于森林中的其他子树,若其他子树的总结点数位n,则第一棵树的节点个数为:m-n