数据结构--树&二叉树基本概念

99 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第9天

二叉树

树的基本术语补充

  1. 结点:树中的独立单元,包含一个数据元素和若干指向其子树的分支

  2. 结点的度:结点拥有的子树个数,

  3. 树的度:树内各节点的度的最大值

  4. 叶子(终端结点):度为0的结点

  5. 分支结点(非终端结点):度不为0的结点

    根结点:没有祖先结点

    内部结点:度不为0的,有祖先的结点

  6. 双亲:该结点为孩子的双亲

  7. 孩子:结点子树的根为该结点的孩子

  8. 兄弟:同一个双亲结点的孩子之间互称兄弟

  9. 堂兄弟:双亲在同一层的结点互为堂兄弟

  10. 祖先:从根到该结点所经分支上的所有结点

  11. 子孙:以某结点为根的子树中任一结点都是该结点的子孙

  12. 层次:从根结点算起,根为第一层,树中任一结点的层次=其双亲结点的层次+1

  13. 深度(高度):树中节点最大的层次

  14. 有序树:树中结点的各子树从左至右是有次序的,不能互换(最左边:第一个孩子;最右边:最后一个孩子)

  15. 无序树:树中结点的各子树从左至右无有次序的,能互换

  16. 森林:m颗不相交树的集合

对树中的每一个结点而言,其子树的集合即为森林

定义

n个结点的有限集合,该集合为空集或者为空集(称为空二叉树),或者由一个根结点和两颗互不相交的、分别称为根结点的左子树和右子树的二叉树组成

特点

  1. 每个结点最多有两棵子树,所以二叉树中不存在度大于2的结点。注意不是只有两棵子树,而是最多有。
  2. 左子树和右子树是有顺序的,次序不能任意颠倒。
  3. 即使树中某结点只有一颗子树,也要区分它是左子树还是右子树。

特殊的二叉树

满二叉树

定义

在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上,这样的二叉树称为满二叉树

特点

  1. 叶子只能出现在最下层。
  2. 非叶子结点的度一定是2。
  3. 在同样深度的二叉树中,满二叉树的结点个数最多,叶子树最多。

完全二叉树

定义

对一棵具有n个结点的二叉树按层序编号,如果编号为i(1<= i <= n) 的结点与同样深度的满二叉树中编号为i的结点在二叉树中位置完全相同

即若设二叉树的深度为h,第 h 层所有的结点都连续集中在最左边,其它各层 (1~h-1) 的结点数都达到最大个数(即1~h-1层为一个满二叉树),

特点

叶子结点只能出现在最下两层。 最下层叶子一定集中在左部连续位置。 倒数两层,若有叶子结点,一定都在右部连续位置。 如果结点度为1,则该结点只有左孩子,即不存在只有右子树的情况。 同样结点数的二叉树,完全二叉树的深度最小。