二叉树的基本概念
二叉树是n(n≥0)个结点的有限集合:
①n=0,即空二叉树。
②由一个根结点和两个互不相交的被称为根的左子树和右子树组成,左子树和右子树又分别是一棵二叉树。
特点:①每一个结点至多只有两棵子树②左右子树不能颠倒(二叉树是有序树)
作为树的一种,二叉树也是递归定义的
几个特殊的二叉树:
满二叉树:一个高度为h,且有(2^h-1)个结点的二叉树。
特点:①只有最后一层有叶子节点②不存在度为1的结点③按层序从1开始编号,结点i的左孩子为2i,右孩子为(2i+1);若结点有父结点,则为⌊i/2⌋
完全二叉树:当且仅当其每个结点都与高度为h的满二叉树中编号为1~n的结点一一对应时,称为完全二叉树。
特点:①只有最后两层可能有叶子结点②最多只有一个度为1的结点③同上④n个结点中,i≤⌊i/2⌋为分支结点,i>⌊i/2⌋为叶子结点。
二叉排序树:一棵具有如下性质的二叉树:
左子树上所有结点的关键字均小于根节点的关键字;
右子树上所有结点的关键字均大于根节点的关键字。
左子树和右子树各是一棵二叉排序树。
可用于元素的排序、搜索。
平衡二叉树:树上任一结点的左子树和右子树的深度之差不超过1。
二叉树的常见性质
①设非空二叉树中度为0、1、2的结点个数分别为n₀、n₁、n₂,则n₀=n₂+1(叶子节点比二分支结点多一个)。
假设二叉树总结点数为n,则
(1)n=n₀+n₁+n₂
(2)n=n₁+2n₂+1
可得结论n₀=n₂+1
②二叉树第i层至多有2^(i-1)个结点(i≥1)。
③高度为h的二叉树至多有(2^h-1)个结点(满二叉树)。
完全二叉树的常见性质
①有n(n>0)个结点的完全二叉树的高度h为⌈log2(n+1)⌉或⌊log2(n)⌋+1。
②对于完全二叉树,可以由二叉树总结点数n推出度为0、1、2的结点个数为n₀、n₁、n₂
完全二叉树最多有一个度为1的结点,即n₁=0/1,又n₀=n₂+1,可得n₀+n₂一定为奇数,则可得:
(1)若完全二叉树有2k(偶数)个结点,则必有n₁=1,n₀=k,n₂=k-1。
(2)若完全二叉树有2k-1(奇数)个结点,则必有n₁=0,n₀=k-1,n₂=k。