1、二叉树相关概念
结点
是数据结构中的基础,是构成复杂数据结构的基本组成单位。
结点拥有的子树数目称为结点的度
。
树中结点的最大层次数称为树的深度
或高度
二叉树
是每个结点最多有两个子树的树结构。通常子树被称作左子树和右子树。每个节点最多有两棵子树,即二叉树不存在度大于2的节点。二叉树的子树有左右之分,其子树的次序不能颠倒。
满二叉树
在一棵二叉树中,所有分支节点都存在左子树和右子树,并且所有的叶节点都在同一层上.
完全二叉树
对一颗具有n个结点的二叉树按层编号,如果任一编号的节点与同样深度的满二叉树中相同编号的结点在二叉树中位置完全相同,则这棵二叉树称为完全二叉树
。
满二叉树一定是完全二叉树,但反过来不一定成立。
平衡二叉树
它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
二叉树特点:
(1)叶子结点只能出现在最下层和次下层。
(2)最下层的叶子结点集中在树的左部。
(3)倒数第二层若存在叶子结点,一定在右部连续位置。
(4)如果结点度为1,则该结点只有左孩子,即没有右子树。
(5)同样结点数目的二叉树,完全二叉树深度最小。
(6)对任何一棵二叉树,如果其叶子节点个数为N0,度为2的非叶子节点个数为N2,则N0=N2+1
(7)一棵非空二叉树的第i层上最多有2i-1个节点
2、二叉树存储结构
顺序存储
二叉树的顺序存储结构就是使用一维数组存储二叉树中的结点,并且结点的存储位置,就是数组的下标索引。
优点
:存储完全二叉树,简单省空间
缺点
:对一般二叉树尤其单支树,存储空间利用不理想
链表存储
用一种链表结构存储二叉树,这种链表称为二叉链表