树和二叉树总结
其他
2020-03-21 22:01:14
阅读次数: 0
一、定义
- 结点分类:树的结点包含一个数据元素和若干指向其子树的分支
- 度:结点拥有的子树数称为结点的度,度为0的结点称为叶子节点,树的结点时各结点度的最大值。
- 树的层数(深度):从根开始定义,根为第一层,树种的结点的最大层次称为树的深度或者高度。
二、树的存储结构
- 双亲表示法:在每个结点中,附设一个指示器指示双亲在数组中的位置
- 孩子表示法:在每个结点中,附设一个指示器指示孩子数和若干指示器指向孩子结点所在的位置
- 孩子兄弟表示法:data-firstchild-rightchild
三、二叉树的定义
- 满二叉树:在一棵二叉树中,所有分支结点都存在左子树和右子树,并且所有的叶子节点都在同一层上。
- 完全二叉树:完全二叉树是由满二叉树而引出来的,若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数(即1~h-1层为一个满二叉树),第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。
四、二叉树的性质:
- 在二叉树的第I层上至少有2^i-1个结点
- 深度为K的二叉树至多有2^k-1个结点
- 对任意二叉树T,如果其叶子节点数为n0,度为2的结点数为n2,则n0=n2+1。
- 具有N个结点的完全二叉树的深度为|log2N|(|x|表示不大于x的最大整数)+1。
- 如果对一颗有N个结点的完全二叉数的结点按层数编号,对任意结点I有:
- 如果I等于1,则结点无双亲,如果I大于1,则双亲为|I/2|
- 如果2*I>N,则结点I无左孩子,否则其左孩子是结点2I.
- 如果2*I+1>N,则结点I无右孩子,否则其右孩子是结点2I+1.
转载自www.cnblogs.com/charlottepl/p/12542485.html