树和二叉树总结

一、定义

  1. 结点分类:树的结点包含一个数据元素和若干指向其子树的分支
  2. 度:结点拥有的子树数称为结点的度,度为0的结点称为叶子节点,树的结点时各结点度的最大值。
  3. 树的层数(深度):从根开始定义,根为第一层,树种的结点的最大层次称为树的深度或者高度。

二、树的存储结构

  1. 双亲表示法:在每个结点中,附设一个指示器指示双亲在数组中的位置
  2. 孩子表示法:在每个结点中,附设一个指示器指示孩子数和若干指示器指向孩子结点所在的位置
  3. 孩子兄弟表示法:data-firstchild-rightchild

三、二叉树的定义

  1. 满二叉树:在一棵二叉树中,所有分支结点都存在左子树和右子树,并且所有的叶子节点都在同一层上。
  2. 完全二叉树:完全二叉树是由满二叉树而引出来的,若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数(即1~h-1层为一个满二叉树),第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。

四、二叉树的性质:

  1. 在二叉树的第I层上至少有2^i-1个结点
  2. 深度为K的二叉树至多有2^k-1个结点
  3. 对任意二叉树T,如果其叶子节点数为n0,度为2的结点数为n2,则n0=n2+1。
  4. 具有N个结点的完全二叉树的深度为|log2N|(|x|表示不大于x的最大整数)+1。
  5. 如果对一颗有N个结点的完全二叉数的结点按层数编号,对任意结点I有:
    1. 如果I等于1,则结点无双亲,如果I大于1,则双亲为|I/2|
    2. 如果2*I>N,则结点I无左孩子,否则其左孩子是结点2I.
    3. 如果2*I+1>N,则结点I无右孩子,否则其右孩子是结点2I+1.

猜你喜欢

转载自www.cnblogs.com/charlottepl/p/12542485.html