数据结构之树(一)——树的定义和相关术语

树的定义

是n( n ≥ 0 n\geq 0 n0)个结点的有限集。
    若 n = 0 n=0 n=0,称为空树;
    若 n > 0 n>0 n>0,则它满足如下两个条件:
        (1).有且仅有一个特定的称为的结点;
        (2)其余结点可分为m( m ≥ 0 m\geq 0 m0)个互不相交的有限集T1,T2,T3,…,Tm,其中每一个集合本身又是一棵树,并称为根的子树

显然,树的定义是一个递归的定义。

树一般表示为一个层次结构,如下图,
在这里插入图片描述
除此以外,树还可以表示为集合结构,凹入方式以及广义表的方式,
在这里插入图片描述



树的基本术语

现有一树的示意图如下,
在这里插入图片描述

在这里插入图片描述
关于上图树结构,有以下相关术语:

  • 结点:数据元素以及指向子树的分支。图中的A,B,C等都是结点。
  • 根结点:非空树中无前驱结点的结点。图中的A结点。
  • 结点的度:结点拥有的子树数。图中A结点有3个子树,其度为3。
  • 树的度:树内各结点的度的最大值。上图中树的度为3。
  • 叶子结点(终端结点):度为0的结点。图中的F,I,J等都是叶子结点。
  • 分支结点(非终端结点):度不为0的结点。A,B,C,D等都是分支结点。
  • 内部结点(中间结点):根结点以外的分支结点。B,C,D等都是内部结点。
  • 结点的子树的根称为该结点的孩子,该结点称为孩子的双亲。图中,E是L的双亲,L是E的孩子。
  • 有一些结点,它们有共同的双亲,则称这些结点为兄弟结点。图中的H,I,J就是兄弟结点。
  • 双亲在同一层上的结点称为堂兄弟结点。图中的G,H就是堂兄弟结点。
  • 结点的祖先:从根到该结点所经分支上的所有的结点。A,D,H结点都是结点M的祖先。
  • 结点的子孙:以某结点为根的子树中的任一结点。
  • 树的深度:树中结点的最大层次。图中的树的深度为4。
  • 有序树:树中结点的各子树从左至右右次序。
  • 无序树:树中结点的各子树无次序。
  • 森林:是m( m ≥ 0 m\geq 0 m0)棵互不相交的树的集合。把根结点删除树就变成了森林;一棵树可以看成是一个特殊的森林;给森林中的各子树加上一个双亲结点,森林就变成了树。

树一定是森林,而森林不一定是树。



树与线性结构的比较

线性结构树结构
第一个数据元素(无前驱)根结点(无双亲,只有一个)
最后一个数据元素(无后继)叶子结点(无孩子,可以有多个)
其他数据元素:一个前驱,一个后继其它结点(中间结点):一个双亲,多个孩子
一对一一对多
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值