树的介绍和二叉树01

树的相关概念

  • 树结构的特点:

    • 每个结点有零个或多个子结点;
    • 没有父结点的结点称为根结点;
    • 每一个非根结点有且只有一个父结点;
    • 除了根结点外,每个子结点可以分为多个不相交的子树
      在这里插入图片描述
  • 节点的度:该节点所拥有的子树个数

  • 树的度:树中度最大节点的度就是该树的度

  • 叶子(终端)节点:度为0的节点

  • 双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点; 如上图:A是B的父节点

  • 孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点; 如上图:B是A的孩子节点

  • 节点的层次:从根开始定义,根为第一层,根的子节点为第二层,以此类推 也有种说法根节点为第0层,所以没有特殊说明的话,默认根节点是第一层

  • 树的高度/深度:节点的最大层次

  • 非终端节点/分支节点:度不为0的节点

  • 兄弟节点:有相同双亲,比如B,C就是兄弟节点

  • 堂兄弟节点:双亲在同一层的节点,H和I就是堂兄弟节点

  • 森林:m棵互不相交的树

树的表示形式

  • 孩子表示法
    节点中既要保存值域,也要保存孩子节点的地址
    优点:找某个节点的孩子节点方便
    缺点:找双亲节点不方便

  • 双亲表示法
    节点中既要保存值域,还要保存双亲的地址
    优点:找节点的双亲比较方便
    缺点:找节点的孩子不方便

  • 孩子双亲表示法
    孩子表示和双亲表示结合起来,节点中既保存值域,也要保存节点的孩子以及双亲的地址

  • 孩子兄弟表示法(常用)
    要保存第一个孩子节点,和当前节点的下一个兄弟节点
    在这里插入图片描述

二叉树!!很重要哦

二叉树的相关概念

  • 二叉树的特点

    • 二叉树是一棵有序树,左右子树的次序不能颠倒
    • 二叉树中一定不会存在度大于2的节点
  • 满二叉树:二叉树中每层节点个数达到最大值
    第i层 2^(i-1)个节点
    如果一个满二叉树共n层,则共 2^-1个节点

  • 完全二叉树
    如果一颗具有n个节点的二叉树与满二叉树前n个节点的连接形式一样(好好理解这句话),将该二叉树称为完全二叉树
    在这里插入图片描述
    ==》

    • 满二叉树是一颗特殊的完全二叉树,但完全二叉树不一定是满二叉树
    • 完全二叉树中一定不会存在某节点只有右孩子没有左孩子的情况

二叉树的性质

  • 在二叉树的第i(i>=1)层最多有2^(i - 1)个结点

  • 深度为k(k>=0)的二叉树最少有k个结点,最多有2^k-1个结点。

  • 对于任一棵非空二叉树,若其叶结点数为n0,度为2的非叶结点数为n2,则n0 = n2 +1

  • 对于具有n个节点的完全二叉树,如果按照从上到下从左至右的顺序对所有节点从0开始编号,则对于需要为i的节点有:

    • 若i > 0,双亲序号:(i -1)/ 2 ;i = 0,i为根节点编号,无双亲节点
    • 若2i + 1 < n,左孩子序号:2i + 1,否则无左孩子
    • 若2i + 2 < n,右孩子序号:2i + 2,否则无左孩子
      在这里插入图片描述
  • 如果完全二叉树中的节点个数是偶数个,一定有一个节点只有左孩子

  • 如果完全二叉树中的节点个数是奇数个,一定没有只有左孩子的节点

  • 【例题】假设一颗完全二叉树中总共有1000个节点,则该二叉树中_500___个叶子节点,__500__个非叶子节点,__1__个节点只有左孩子,__0__个节点只有右孩子
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值