树的一些基本概念

之前学过数据结构,但是很多概念性的东西都有点忘了,现在翻出来整理一下,秋招春招加油!
先来复习有关树的一些基本概念。

1.树的基本概念

树(Tree)是由n(n>=0)个节点组成的有限集合(树中元素通常称为结点)。
n=0的树称为空树;
n>0的树T由以下两个条件约定构成:

  1. 有一个特殊的结点称为根(root)结点,它只有后继节点,没有前驱节点。
  2. 除根结点之外的其他结点分为m(0<=m<n)个互不相交的集合,其中每一个集合也都具有树结构,称为根的子树。

2.树的相关术语

树中有许多相关的术语,下面来一一了解:

  1. 结点: 结点是树的基本单位,树是由结点组成的,结点之间具有层次关系的非线性结构。结点中包含一个数据元素及指向其他分支信息。
  2. 度: 结点的度(degree)是结点所拥有的子树的棵数。度为0的结点称为叶子结点(leaf),又称终端节点。一棵树的度是指各结点度的最大值。
  3. 结点层次: 结点的层次属性反映结点处于树中的层次位置。约定根节点的层次为1,其他层次是其父母结点的层次加一。
  4. 树的高度: 树的高度或称树的深度,是指树中结点的最大层次数。
  5. 有序树、无序树: 在树的定义中,如果结点的子树之间没有次序,可以交换位置,称为无序树,简称树。如果结点子树之间是有次序的,不能交换顺序,则称该树为有序树。
  6. 森林: 森林是由m棵互不相交的树的集合。给森林加上一个根结点就变成一棵树,将树的根结点删除就变成森林。
  7. 孩子结点: 一个结点的直接后继称为该结点的孩子结点。
  8. 父母结点: 一个结点的直接前驱称为该结点的父母节点。
  9. 祖先结点: 一个结点从根节点到该结点路径上的所有结点。
  10. 子孙节点: 一个结点的直接后继及间接后继。
  11. 兄弟节点: 同一父母结点的孩子结点之间互称为兄弟节点。
  12. 前辈节点: 层号比当前结点小的结点。
  13. 后辈结点: 层号比当前结点大的结点。

3.二叉树

二叉树(Binary Tree)是n(n>=0)个结点组成的有限集合,n=0时称为空二叉树;n>0的二叉树由一个根节点和两颗互不相交的、分别成为左子树和右子树的二叉树构成。二叉树也是递归定义的。
树中的相关术语在二叉树中也是适用的。

二叉树的性质

  1. 若根节点层次为1,则二叉树第i层最多有2^i-1个结点。
  2. 在高度为h的二叉树中,最多有(2^h)-1个结点。
  3. 设一颗二叉树的叶子节点数为n0,2度结点数为n2,则n0=n2+1。
  4. 一颗具有n个结点的完全二叉树,其高度为log2n向下取整再加一。
  5. 一个具有n个结点的完全二叉树,对序号为i的结点有:
    1)若i=0,则该结点为根节点,如i>0,则该结点的父母结点序号为(i-1)/2向下取整;
    2)若2i+1<n,则i的左孩子结点序号为2i+1,否则无左孩子;
    3)若2i+2<n,则i的右孩子结点序号为2i+2,否则无右孩子。

二叉树的遍历

  1. 前序遍历(先序遍历):先访问根节点,遍历左子树,遍历右子树;
  2. 中序遍历:遍历左子树,访问根节点,遍历右子树;
  3. 后序遍历:遍历左子树,遍历右子树,访问根节点。

4.一些常见的二叉树

  1. 满二叉树: 具有(2^h)-1个结点的二叉树。满二叉树中每一层的节点数目都达到最大值。满二叉树按照约定编序号是从上到小,从左到右的。
  2. 完全二叉树: 一个具有n个结点高度为h的二叉树,如果它的每个节点都与高度h的满二叉树中结点的序号一一对应,则称这个二叉树是完全二叉树。(满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树)
  3. 线索二叉树: 对二叉树以某种次序进行遍历并加上线索的过程称为线索化,而线索化得到的二叉树称为线索二叉树。
  4. 折半判定树: 折半判定树的特征是比根节点小的数在左子树,比根节点大的数在右子树 。折半判定树有一些特征:
    1)任意两棵折半判定树,如果它们的结点个数相同,那么它们的结构完全相同 ;
    2)任意结点的左右子树中结点个数最多相差1;
    3)任意结点的左右子树的高度最多相差1;
    4)任意两个叶子所处的层次最多相差1。
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值