【Java高级数据结构】树与二叉树

树和图都是非线性结构。线性结构中结点间具有唯一前驱、唯一后继关系,而非线性结构中节点间前驱、后继的关系并不具有唯一性。其中,在树结构中,节点间关系是前驱唯一而后继不唯一,即结点之间是一对多的关系;而在图结构中,结点间前驱与后继可不唯一,即结点之间是多对多的关系。直观地看,树结构是指具有分支关系地结构(其分叉、分层的特征类似于自然界中的树)。树结构应用非常广泛,特别是在大量数据处理(如在文件系统、编译系统、目录组织等)方面显得更加突出。

树的定义于基本术语
1、树的基本概念

树是n(n>=0)个结点的有限集合T。当n=0时,称为空树;当n>0时,该集合满足如下条件:

  • 1、其中必有一个称为根(root)的特定结点,它没有直接前驱,但有零个或多个直接后继。
  • 2、其余n-1个结点可以划分成m(m>=0)个互不相交的有限集T1,T2,T3,…,Tm,其中Ti又是一棵树,称为根的子树。每棵子树的根结点有且仅有一个直接前驱,但有零个或多个直接后继。

树的逻辑结构图示,如下:

在这里插入图片描述

2、树的相关术语
  • 1、结点:包括一个数据元素及若干指向其他结点的分支信息。
  • 2、结点的度:一个结点的子树个数称为此结点的度。
  • 3、叶结点:度为0的结点,即无后继的结点,也称为终端结点。
  • 4、分支节点:度不为0的结点,也称为非终端结点。
  • 5、结点的层次:从根结点开始定义,根结点的层次为1,根的直接后继的层次为2,以此类推。
  • 6、结点的层序编号:将树中的结点按从上层到下层、同层从左到右的次序排成一个线性序列,依次给它们编以连续的自然数。
  • 7、树的度:树中所有结点的度的最大值。
  • 8、树的高度(深度):树中所有结点的层次的最大值。
  • 9、有序树:在树T中,如果各子树Ti之间是有先后次序的,则称为有序树。
  • 10、森林:m(m>=0)棵互不相交的树的集合。将一棵非空树的根结点删去,树就变成一个森林;反之,给森林增加一个统一的根结点,森林就变成一棵树。
  • 11、同构:对两棵树,通过对结点适当的重命名,就可以使两棵树完全相等(结点对应相等,对应结点的相关关系也相等),则称这两棵树同构

我们常常借助人类家族树的术语,以便于直观理解结点间的层次关系。

  • 12、孩子结点:一个结点的直接后继称为该结点的孩子结点。如上图中,B、C是A的孩子。
  • 13、双亲结点:一个结点的直接前驱称为该结点的双亲结点。如上图中,A是B、C的双亲。
  • 14、兄弟结点:同一双亲结点的孩子结点之间互称为兄弟节点。如上图中,结点H、I、J互为兄弟。
  • 15、堂兄弟:父亲是兄弟关系或堂兄关系的结点称为堂兄弟结点。如上图中,结点E、G、H互为堂兄弟。
  • 16、祖先结点:一个节点的祖先节点是指从根结点到该结点的路径上的所有结点。如上图中,结点K的祖先是A、B、E。
  • 17、子孙结点:一个结点的直接后继和间接后继称为该结点的子孙结点。如上图中,结点D的子孙是H、I、J、M。
  • 18、前辈:层号比该结点小的结点,都称为该结点的前辈。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值