定义
二叉树是n≥0个结点的有穷集合D与D上关系的集合R构成的结构。当n=0时,称该二叉树为空二叉树;否则,它为包含了一个根结点以及两棵不相交的、分别称之为左子树与右子树的二叉树(递归定义)。
二叉树是有序树。
二叉树的基本形态
二叉树有如下五种基本形态,如下图:
子树有严格的左右之分且度数小于等于2的数是二叉树;(没有左右之分的不是二叉树)
满二叉树
若一棵二叉树中的结点,或者为叶结点,或者具有两棵非空子树,并且叶结点都集中在二叉树的最下面一层.这样的二叉树为满二叉树,如下图:
完全二叉树
若一棵二叉树中只有最下面两层的结点的度可以小于2,并且最下面一层的结点(叶结点)都依次排列在该层从左至右的位置上。这样的二叉树为完全二叉树,如下图:
二叉树的性质
二叉树的基本操作
二叉树的存储结构
顺序存储结构
1、完全二叉树的顺序存储结构
2、一般二叉树的顺序存储结构
如下图:
顺序存储结构比较适合满二叉树,或者接近于满二叉树的完全二叉树,对于一些称为“退化二叉树”的二叉树,顺序存储结构的空间开销浪费的缺点表现比较突出;
链式存储结构
1、二叉链表
二叉链表的节点定义如下:
二叉链表使用较多;2、三叉链表