三.二叉树的定义和基本术语
二叉树:二叉树是n(n>=0)个结点的有限集合:(1)为空二叉树,即n=0。 (2)由一个根结点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树有分别是一棵二叉树。
特点:(1)每个结点至多只有两棵子树; (2)左右子树不能颠倒(二叉树是有序树)。(注意区别度为2的有序树)
特殊的二叉树:(1)满二叉树:一棵高度为h,且含有个结点的二叉树。 特点:1.只有最后一层有叶子结点; 2.不存在度为1的结点; 3.按层序从1开始编号,结点i的左后继为2i,右后继为2i+1;若结点i存在父结点,则父结点为[i/2]。
(2)完全二叉树:当且仅当每个结点都与高度为h的满二叉树中编号为1~n的结点一一对应时,称为完全二叉树。(满二叉树是特殊的完全二叉树) 特点:1.只有最后两层可能有叶子结点; 2.最多只有一个度为1的结点; 3.按层序从1开始编号,结点i的左后继为2i,右后继为2i+1;若结点i存在父结点,则父结点为[i/2]。 4.若完全二叉树共有n个结点,则当编号i<=[n/2]时,该结点为分支结点;若编号i>[n/2],该结点为叶子结点。 5.若某个结点只有一个后继看,那么一定是左后继。
(3)二叉排序树:1.左子树上所有结点的关键字均小于根结点的关键字; 2.右子树上所有结点的关键字均大于根结点的关键字; 3.左子树和右子树又各是一棵二叉排序树。
(4)平衡二叉树:树上任意一结点的左子树和右子树的深度之差不超过1。
四.二叉树的性质
1.设非空二叉树中度为0,1和2的结点个数分别为,和,则。(假设树中结点总数为n,则:1. ; 2.树的结点数=总度数+1:;由1、2得:)
2.二叉树第i层至多有个结点(i>=1);m叉树第i层至多有个结点(i>=1)。
3.高度为h的二叉树至多有个结点(满二叉树);高度为h的m叉树至多有个结点。
4.具有n个(n>0)结点的完全二叉树的高度h为或。
5.对于完全二叉树,可以由树的结点数n推出度为0、1和2的结点个数为、和。
推导:1.完全二叉树最多只有一个度为1的结点,即=0或1;
2.推出一定是奇数;
3.(1)若完全二叉树有2k(偶数)个结点,则必有;(2)若完全二叉树有2k-1(奇数)个结点,则必有。