树的定义:n个节点组成的有限集合。n=0,空树;n>0,1个根节点,m个互不相交的有限集,每个子集为根的子树。
1、基本术语:
节点的度:树中某个节点的子树的个数。
树的度:树中各节点的度的最大值。
分支节点:度不为零的节点。
叶子节点:度为零的节点。
路径:i->j;路径长度:路径经过节点数目减1。
孩子节点:某节点的后继节点;双亲节点:该节点为其孩子节点的双亲节点(父母节点);兄弟节点:同一双亲的孩子节点;子孙节点:某节点所有子树中的节点;祖先节点:从树节点到该节点的路径上的节点。
节点的层次:根节点为第一层(以此类推);树的高度:树中节点的最大层次。
有序树:树中节点子树按次序从左向右安排,次序不能改变;无序树:与之相反。
森林:互不相交的树的集合。
2、树的性质
树的节点树为所有节点度数加1(加根节点)。
度为m的树中第i层最多有m^(i-1)个节点。
高度为h的m次树至多(m^h-1)/(m-1)个节点。
具有n个节点的m次树的最小高度为logm( n(m-1) + 1 ) 向上取整。
二叉树:有限节点集合,或为空,或为一个根节点和两棵互不相交的左子树和右子树组成。
满二叉树:每个分支节点都有左孩子节点和右孩子节点。
- 叶子节点都在最下一层
- 只有度为0和2的节点
完全二叉树:二叉树的最下面两层的节点度数小于2,且最下面一层的叶子节点依次排列在该层的最左边的位置。
- 某节点i为叶子节点或只有左孩子节点,则编号大于i的节点均为叶子节点
- 节点总数为奇数时,度数为1的节点为0;偶数时,度数为1的节点为1
二叉树的性质
- 非空二叉树上叶子节点树等于双分支节点树加1
- 总分支数 = n1 + 2n2 ,总分支数 = n - 1 ,总节点数 = n0 + n1 + n2
- 非空二叉树上第i层上至多有2i - 1个节点
- 高度为h的二叉树至多有2h - 1个节点
- 完全二叉树中的 i 节点,若2i ≤ n,i为分支节点,否则为叶子节点;若i节点有左孩子节点,编号为2i,若i节点有右孩子节点,编号为2i + 1