0
点赞
收藏
分享

微信扫一扫

数据结构系列笔记——树、二叉树

凯约 2022-02-07 阅读 53

树的一些基本概念:

  • 节点的度:子树的个数
  • 树的度:所有节点度的最大值
  • 叶子节点:度为0的节点
  • 层数:根节点在第1层,根节点的子节点在第2层,以此类推
  • 节点的深度:从根结点到该结点的唯一路径上的节点树
  • 节点的高度:从当前节点到最远叶子节点的路径上的节点总数
  • 树的深度:所有节点深度中的最大值
  • 树的高度:所有节点高度中的最大值
  • 树的深度等于树的高度

二叉树的一些特点

  • 每个节点的度最大为2(最多拥有2棵子树)
  • 左右子树是有顺序的
  • 非空二叉树的第i层,最多有2i-1个节点
  • 在高度为h的二叉树上最多有2h-1个节点
  • 对于任何一棵非空二叉树,如果叶子节点个数为n0,度为2的节点个数为n,
    则有:n0=n2+1
  • 真二叉树:所有节点度要么为0,要么为2
  • 满二叉树:所有节点度要么为0,要么为2,且所有叶子节点都在最后一层

完全二叉树的一些性质

  • 叶子节点只会出现在最后两层,且最后一层的叶子节点都向左靠齐
  • 度为1的节点只有左子树
  • 度为1的节点要么是1个,要么是0个
  • 同样节点数量的二叉树,完全二叉树的高度最小
  • 假设完全二叉树的高度为h,那么至少有2h-1个节点,最多有2h-1个节点
  • 一颗有n个节点的完全二叉树(n>0),从上到下、从左到右对节点从1开始编号,对任意第i个节点
    • 如果i=1,它是根节点
    • 如果i>1,它的父节点编号为floor(i/2)
    • 如果2i<=n,它的左子节点编号为2i
    • 如果2i>n,它无左子节点
    • 如果2i+1<=n,它的右子节点编号为2i+1
    • 非叶子节点个数n0 = floor((n+1)/2)=ceiling(n/2)
    • 非叶子节点个数n1+n2 = floor(n/2)=ceiling((n-1)/2)
举报

相关推荐

0 条评论