树与二叉树的概念
结点,用圆形表示
分支,指的是结点下的线
结点的度,该结点的子树数目
树的度,各结点度的最大值
分支结点,度不为0的结点
内部结点,除根以外的分支结点
层次,根为第一层,以此类推
树的高度,一棵树的最大层次数。
二叉树的定义
二叉树是n个结点的有限集合,它或者是空树,或者是由1个根结点及两棵不相交的且左右称为左右子树的二叉树所构成。
空树,没有结点的树
单结点树,只有一个顶点结点
二叉树,所有结点的度不大于2的树。
满二叉树,任意结点,度为0或2。
二叉树的存储
假定要存储有8个结点的二叉树数据
方式一,采用大小为8的一维数组
这种方式没有存储位置信息,无法还原。
方式二,采用完全二叉树结点的数目,为15,在相应位置信息填数据,该位置如果没有数据,就是空。
这种方式特点,可以还原,有大量空间浪费。
方式三,链式存储
用链表存储,每个结点都有链表数据,每个环节存有数据和指向子树的指针。
二叉树的特性
在二叉树的第i层有2^(i-1)个结点
深度为k的二叉树最多有2^k-1个结点
如果对一颗有n个结点的完全二叉树的结点按层编号,则对任意结点有
如果i=1,则结点i无父结点,是二叉树的根;如果i>1,则父结点是[i/2]。
如果2i>n,则结点i为叶子结点,无左子节点。否则,其左子结点是结点2i
如果2i+1>n,则结点i无右子结点,否则,其右子结点是结点2i+1
具有n个结点的二叉树形态数
0个结点是1种
1个结点是1种
2个结点是2种
3个结点是5种
以此为基础,推导4个结点,5个结点二叉树形态。