一、基本概念
二叉树是n(n>=0)个结点的有限集合:
1.或者为空二叉树,即n=0
2.或者由一个根节点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树有分别是一颗二叉树
3.特点:
①每个结点最多有两棵子树
②左右子树不能颠倒(二叉树是有序树)注意区分:度为2的有序树
二、几种特殊的二叉树
一、满二叉树
一棵高度为h,且含有2的h次方-1个结点的二叉树
也就是每个二叉树的结点,都有两个孩子节点
特点:
1.只有最后一层有叶子节点
2.不存在度为1得结点
3.按层序从1开始从左向右编号,节点为i的左孩子为2i,右孩为2i+1;结点i的父节点为[i/2](如果有的话)
二、完全二叉树(在满二叉树的基础上可去掉若干个)
当且仅当其每个结点斗鱼高度为h的满二叉树中编号为1~n的结点一一对应时,称为完全二叉树
特点:
1.只有最后两层可能有叶子节点
2.最多只有一个度为1的结点
3.同上的3
4.i<=[n/2]为分支节点,i>[n/2]为叶子节点
【注】如果在完全二叉树中,某个节点只有一个孩子,那么一定是左孩子
三、二叉排序树(可用于元素的排序、搜索)
一颗二叉树或者是空二叉树,或者是具有如下性质的二叉树:
1.左子树上所有结点的关键字均小于根节点的关键字
2.右子树上所有结点的关键字均大于根节点的关键字
3.左子树和右子树又各是一颗二叉排序树
四、平衡二叉树(能有更高的搜索效率)
树上任一结点的左子树和右子树的深度之差不超过1
【PS:】树的高度(深度):--总共多少层
三、常考性质
常见考点一:设非空二叉树中度为0、1、2的节点个数分别为n0、n1、n2,则:(叶子节点比二分支节点多一个)
假设树中总结点数为n,则:
① n = n 0 + n 1 + n 2 ① n=n_0+n_1+n_2 ①n=n0+n1+n2
② n = 1 ∗ n 1 + 2 ∗ n 2 + 1 ②n=1*n_1+2*n_2+1 ②n=1∗n1+2∗n2+1
② − ① : n 0 = n 2 + 1 ②-①:n_0=n_2+1 ②−①:n0=n2+1
②树的结点数=总度数+1
常见考点二:
① 二 叉 树 第 i 层 至 多 有 2 i − 1 个 结 点 ( i ≥ 1 ) ①二叉树第i层至多有2^{i-1}个结点(i\geq1) ①二叉树第i层至多有2i−1个结点(i≥1)
② m 叉 树 第 i 层 至 多 有 m i − 1 个 结 点 ( i ≥ 1 ) ②m叉树第i层至多有m^{i-1}个结点(i\geq1) ②m叉树第i层至多有mi−1个结点(i≥1)
常见考点三:
① 高 度 为 h 的 二 叉 树 至 多 有 2 h − 1 个 结 点 ( 满 二 叉 树 ) ①高度为h的二叉树至多有2^h-1个结点(满二叉树) ①高度为h的二叉树至多有