树与二叉树的基本概念

目录

一、树(Tree)

结点与度

结点间关系

树的其他相关概念

二、二叉树(Binary Tree)

二叉树的特点

特殊二叉树

二叉树的特点


一、树(Tree)

  • 是n (n≥0)个结点的有限集。
  • n=0时称为空树。
  • 线性结构是一对一,树是一对多的数据结构。
  • n>0时根节点是唯一的,不可能存在多个根节点(不要和现实世界中大树混在一起)
  • m>0时,子树的个数没有限制,但子树一定是互不相交的。如下图就不符合树的定义,因为子树相交

结点与度

  • 叶子节点/终端节点:该结点下无子树,没有分支。度=0

  • 非叶子节点/非终端节点:该结点下有子树。度≠0

  • 结点的度:一个节点含有的子树的个数;
  • 树的度:树中结点度的最大值

结点间关系

  •         结点的子树的根称为该节点的孩子(Child),相应的,该节点称为孩子的双亲(Parent)。同一个双亲的孩子之间互称为兄弟。结点的祖先是从根到该节点所经分支上的所有节点。以某节点为根的子树中的任一结点都称为该结点的子孙

树的其他相关概念

  • 层次:根节点为第1层
  • 树的深度/高度:树中结点的最大层数(下图中树的深度/高度为5)

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

二、二叉树(Binary Tree)

        是n(n≥0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。简易理解为如果有分支,最多有2个。

二叉树的特点

  • 每个结点最多只能有2个子树,也就是说二叉树的度必须 ≤ 2
  • 二叉树的子树有左右之分,左右次序不能颠倒。即便只有一棵子树,也要区分它是左子树还是右子树。如下就是两颗树。

     

  • 二叉树有5种形态
    • 空树(空二叉树)
    • 只有一个根节点
    • 根+左子树
    • 根+右子树
    • 根+左子树+右子树

     

特殊二叉树

  • 斜树:所有节点都只有左子树的二叉树称为左斜树。所有节点都是只有右子树的二叉树称作右斜树。
  • 平衡二叉树:左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1
  • 满二叉树:在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上,这样的二叉树称为满二叉树。通俗的说,每一层节点均达到最大值,叶子结点在同一层。假设树的深度为k,结点个数为2^k-1。

     

  • 满二叉树特点:

    • 叶子只能在最下一层。

    • 非叶子节点的度一定是2

    • 在同样深度的二叉树中,满二叉树的结点个数最多,叶子最多。

  • 完全二叉树:当前树除了最下面一层外,其余层均满,而最下面一层的结点均靠左。
  •  完全二叉树特点:

    • 叶子节点只能出现在最下两层

    • 最下层的叶子节点一定集中在左部连续位置

    • 倒数第二层,若有叶子结点,一定都在右部连续位置

    • 如果节点度为1,则该节点只有左孩子,不存在只有右子树的情况

    • 同样的节点数的二叉树,完全二叉树的深度最小。

二叉树的特点

性质1:

 性质2:

 性质3:

性质4:

性质5:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值