本章内容
二叉树的常考性质
二叉树的存储结构
二叉树的常考性质
性质1
性质2
性质3
性质4
公式1推导
公式2推导
性质5
回顾
二叉树的存储结构
分为顺序存储和链式存储
二叉树的顺序存储
二叉树的顺序存储是指用一组地址连续的存储单元,依次自上而下,自左至右存储完全二叉树上的结点元素,即将完全二叉树上的编号为i的结点元素存储在一维数组下标为i-1的分量中。
如图:
依据二叉树的性质,完全二叉树和满二叉树采取顺序存储比较合适。树中结点的序号可以唯一的反应结点之间的逻辑关系,这样既能最大可能地节省存储空间。又能利用数组元素的下标值确定结点在二叉树中的位置以及节点之间的关系。但对于一般的二叉树为了让数组下标能反映二叉树中结点之间的逻辑关系,只能添加一些并不存在的空节点让其每个节点与完全二叉树上的节点相对应,再存储到一维数组的相应分量重。
然而最坏的情况下一个高度为h且只有h个结点的单支树却需要占据近2^h-1个存储单元。如图
二叉树的顺序存储结构如图,其中0表示并不存在的空结点
二叉树的链式存储
由于顺序存储的空间利用率较低,因此二叉树一般都采用链式存储,用链表结点来存储二叉树中的每个结点。在二叉树中,结点结构通常包括若干数据域和若干指针域。
二叉链表至少包含三个域:数据域data、左指针域lchild 和 右指针域rchild。
回顾
顺序存储
链式存储