二叉树另一种树形结构,他的特点是每个节点只有两颗子树(即不存在度大于2的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒。
只有一个孩子,则这个孩子就无须区分左右次序无论其孩子数是否为2,都是需要确定其左右次序,即二叉树的左右次序不是相对另一结点而言,而是确定的定义:一个高度为h,且含有2的h次方-1个结点的二叉树,称为满二叉树
性质:
定义:高度为h,有n个节点的二叉树,当且仅当其每个节点都与高度为h的满二叉树中的编号为1~n的结点一一对应的时候,成为完全二叉树(在满二叉树的基础上去掉若干个编号更大的结点)

左子树上所有结点的关键字均小于根结点的关键字,右子树上的所有节点的关键字均大于根结点的关键字,左子树和右子树又各是一颗二叉排序树

树上任一结点的左子树和右子树的深度之差不超过1







(因为度为0=度为2加1)
(所以度为0+度为2 等于 2倍的度为2+1)



顺序存储:适合完全二叉树和满二叉树,树中结点序号可以唯一反应结点之间的逻辑关系,这样既能最大可能地节省存储空间,又能利用数组元素的下标值确定结点在二叉树中的位置,以及结点之间的关系
最坏情况:一个高度为h且只有h个结点的单支树需要占据近2的h次方-1个存储单元



由于顺序存储的空间利用率较低,因此二叉树一般采用链式存储结构,用链表结点来存储二叉树中的每个结点。
在二叉树中,结点结构通常包括若干数据域和若干指针域
(二叉链表至少包括3个域:左指针域、左指针域、数据域)
n个结点的二叉链表中,含有n+1个空链域解释:一个二叉树有n个结点,总共有2n个指针域,
除根结点以外,其它每一个结点头上都会有连有指针,所以有n-1个结点
因此2n个指针域中会有n+1个指针是指向null的

