二叉树
- 或者为空二叉树
- 或者是一个根结点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树又分别是一颗二叉树。
特点
- 每个结点之多有两颗子树
- 左右子树不可以颠倒(二叉树是有序树)
- 注意与度为二的有序树的区别
几个特殊的二叉树
-
满二叉树
特点:
只有最后一层有叶子结点,
不存在度为1的结点,
按层序从1开始编号,结点i的左孩子为2i,右孩子为2i+1;结点i的父节点为i/2 -
完全二叉树
特点:
只有可能在最后两层出现叶子结点,
最多只有一个度为1的结点
同满二叉树子节点,父节点算法
如果某个结点只有一个孩子,那么一定是左孩子 -
二叉排序树
一颗二叉树或是空二叉树,具有以下性质
左子树上所有结点的关键字都小于根结点的关键字
右子树上所有的结点的关键字都大于根节点的关键字
左子树和右子树又各是一颗二叉排序树 -
平衡二叉树
树上任一结点的左子树和右子树的深度之差不超过1
平衡二叉树能有更高的搜索效率
二叉树的常考性质
1. 设非空二叉树中度为0,1,2的结点个数分别为x,y,z,则x=z+1,叶子结点比二分支结点多1个
假设书中结点总数为n,则
》n=x+y+z
》n=y+2z+1 (树的结点树=总度数+1)
2. 二叉树的第i层至多有2的i-1次方个结点,(m叉树的第i层之多有m的i-1次方个结点)
3.
完全二叉树的常考性质
- 具有n个结点的完全二叉树的高度h为
- 对于完全二叉树,如果知道结点数n,则可以推出度为0,1,2的结点个数