二叉树概念、节点数、遍历

树的一些概念

二叉树(二分树)

  它的特点是每个结点最多只有二棵子树,二叉树的子树有左右之分。

任意一颗二叉树中,度为0的结点与度为2的结点满足以下关系: n0=n2+1

证明如下:
n个结点的二叉树,度只可能是0,1,2,分别设其对应的结点个数为n0、n1、n2,则有n=n0+n1+n2
又n结点的树只有n-1条边,则有n-1=n1+2*n2
两式相减,可得等式n0=n2+1

完全二叉树

  1. 叶子结点出现在最大两层
  2. 左子树深度与右子树深度相同或相差一层
  3. 若树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数(2n-1个节点)
  4. 完全二叉树中度为1的节点个数为0或1
    由该结论可推导:
    n0=n2+1;n=n0+n1+n2
    由以上 两个公式消去n2得到:
    n1=0时,n0=(n+1)/2 或 n1=1时,n0=n/2
    (可以用该结论判断完全二叉树中度为1的节点)

满二叉树

  1. 在满二叉树中,只有度为2和0的结点
  2. 在第h层,有2h-1个结点
  3. 深度为h的满二叉树,有2h-1个结点

如果一个树是一颗满二叉树,那么它一定是一颗完全二叉树;反之不成立


节点数计算

  1. 深度为6的完全二叉树的第6层有3个节点,则该二叉树共有___个叶子节点。
    第六层有3个叶子节点,则第五层的节点中,有2个是非叶子节点
    第五层所有节点个数为25-1=16
    所以该二叉树叶子节点数为:16-2+3=17 个

  2. 一颗完全按二叉树共有699个节点,则该二叉树叶子节点数为___;度为1的节点数为___
    由结论4可得,当n1=0时,n0=(699+1)/2 =350;则度为1的节点数为0;

二叉树的前、中、后序遍历

前中后序是指对根节点的前中后,例如前序遍历的顺序为,先遍历根节点,然后遍历左子树,最后遍历右子树。

  1. 已知二叉树的后续遍历为dabec,中序遍历为debac,那么它的前序遍历为__cedba__;
    在这里插入图片描述
发布了91 篇原创文章 · 获赞 54 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/BigBug_500/article/details/102697686