二叉树的定义
二叉树(binary tree)由结点的有限集合构成
这个有限集合或者为空集(empty),或者为由一个根节点(root)及两颗互不相交、分别称作这个根的左子树(left bustree)和右子树(right subtree)的二叉树组成的集合。
二叉树的五种基本形态
二叉树可以是空集合,因此根可以有空的左子树或右子树,或者左右子树都为空。
二叉树相关术语
结点
-子结点、父结点、最左子结点
:若<k,k'>∈r,则称k是k'的父结点(或"父母"),而k'则是k的子结点(或"儿子"、"子女")
-兄弟节点、左兄弟、右兄弟
:若有序对<k,k'>及<k,k''>都∈r,则称K'和K''互为兄弟结点。
-分支结点、叶子结点
:没有子树的节点称为叶子结点(或树叶、终端结点)
:非终端结点称为分支结点
边
两个节点的有序对,称作边
路径、路径长度
除结点k0外的任何节点k ∈K,都存在一个结点序列k0,k1,...,ks,使得k0就是树根,且ks=k,其中有序对<k(i-1),ki>∈r(1<=i<=s)。这样的结点序列称为从根到结点k的一条路径,其路径长度为s(包含的边数)。
祖先、后代
若有一条由k到达ks的路径,则称k是ks的祖先,ks是k的子孙
层数
根为第0层,其他结点的层数等于其父结点的层数加1
深度
层数最大的叶子结点的层数
高度
层数最大的叶子结点的层数加1
满二叉树
如果一棵二叉树的任何结点,或者是树叶,或者恰有两颗非空子树,则此二叉树称为满二叉树
完全二叉树
最多只有最下面的两层结点度数可以小于2
最下一层的结点都集中最左边
扩充二叉树
所有空子树,都增加空树叶
外部路径长度E和内部内径长度I的关系满足:E=I+2n(n是内部结点个数)
二叉树的主要性质
- 在二叉树中,第i层上最多有2的i次方个结点(i>=0)
- 深度为k的二叉树至多有2的(k+1)次方减1个结点(k>=0),其中深度(depth)定义为二叉树中层数最大的叶子结点的层数。
- 一棵二叉树,如果终端结点数为n0,度为2的节点数为n2,则n0=n2+1
- 满二叉树定理:非空满二叉树树叶数目等于其分支结点数加1
- 满二叉树定理推论:一个非空二叉树的空子树数目等于其结点数加1
- 有n个结点(n>0)的完全二叉树的高度为log2(n+1),深度为[log2(n+1)]-1
ps:复习考研了,目标是北邮计算机的非全,可能得等学习到专业课的部分才会继续更新博客了,加油吧!