目录
一、二叉树的概念
1.1 基本概念
二叉树是一种数据结构,是由0个到多个节点组成的树形结构集合。
二叉树中每个节点最多有两个子节点,通常称为左子节点和右子节点。
二叉树可以有效地表示具有层次结构的数据,例如树状数据或文件系统。
1.2 满二叉树和完全二叉树
当二叉树中除了叶子节点,其他每个节点的度都为 2,则此二叉树称为满二叉树,如下图:
当一棵二叉树最后一层节点从左到右依次分布,没有空节点,且忽略最后一层节点后为满二叉树,则此二叉树被称为完全二叉树,如下图:
满二叉树是一种特殊的完全二叉树。
二、二叉树的五个重要性质
2.1 求二叉树的某一层最大节点数量
性质描述:若一棵二叉树不为空,规定该二叉树根节点为第1层,则该树第 i 层的节点数量最多为 个。
2.2 求整棵二叉树的最大节点数量
性质描述:若一棵二叉树不为空,规定该二叉树根节点为第1层,则拥有 i 层的整棵二叉树的节点数量最多为个。
2.3 度不相同的节点之间的数量关系
节点含有子树的个数,称为该节点的度。
有两个子树的节点,度为2;有一个子树的节点,度为1;没有子树的节点,度为0,又称为叶子节点。
一棵二叉树有 n 个节点,将度为2的节点表示为 n2 ,将度为1的节点表示为 n1 ,将度为0的节点表示为 n0 ,则有以下等式:
等式一:n = n0 + n1 + n2
节点与节点之间相连的线称为边,节点的边的数量和度相同。
假设一棵二叉树有 n 个节点,则这棵二叉树将有 n - 1 条边。
一棵二叉树中,度为 0 的节点 n0 没有边,度为 1 的节点 n1 边的数量和节点相同,即有 n1 条边;度为 2 的节点 n2 边的数量是节点数量的两倍,即有 2*n2 条边;则一棵二叉树中边的数量有以下等式:
等式二:n - 1 = n1 + 2 * n2
将以上两条等式合并,得到 n0 + n1 + n2 – 1 = n1 + 2*n2 ,化简后得到以下等式:
等式三:n0 = n2 + 1
2.4 求二叉树的层数
性质描述:一棵具有 n 个节点的完全二叉树,其层数等于向上取整,或向下取整。
推导过程:
根据第二个性质,层数为 i 的二叉树,节点数量 ,则可推导得出 。
2.5 求父节点和子节点
一棵具有 n 个节点的完全二叉树,按照从上到下,从左到右的顺序,从 0 开始按顺序给所有节点编号,则对于任意一个节点 i ,有以下性质:
- i = 0 时,i 为根节点,没有父节点;
- i > 0 时,父节点的序号为 (i - 1) / 2 ;
- 当 2 * i + 1 < n 时,代表节点 i 的左子节点是存在的,且该左子节点的序号为 2 * i + 1 ;否则代表节点 i 没有左子节点;
- 当 2 * i + 2 < n 时,代表 i 节点的右子节点是存在的,且该右子节点的序号为 2 * i + 2 ; 否则代表节点 i 没有右子节点;
( 哈哈哈~~ 文章结束!)
( 看到这里,如果有为各位帅哥美女提供一点点灵感,请点一个小小的赞哦,比心💖💖💖 )