数据结构和算法(七)树的基本概念

前言

      接下来我们进入到树和二叉树的学习

方法

1.树的概念

树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。

父子关系在树的结点之间建立了一个层次结构。

树的结点包含了一个数据元素及若干指向其子树的若干分支。

在这种层次结构中有一个结点具有特殊的地位,这个结点称为该树的根结点,或简称为树根。

我们可以形式的给出树的递归定义如下:
树(tree)是n(n>=0)个结点的有限集,它包含以下几种:

1)空树(n=0)

2)非空树(n>0)

例如: (a)是一课空树,(b)是只有一个根结点的树,(c)是一棵有十个结点的树,其中A是根

2.结点的度与树的度

结点拥有的子树的数目称为该结点的度(Degree)

度为0的结点称为叶子结点或者终端结点

度不为0的结点称为非终端结点或者分支结点,除根之外的分支结点称为内部结点

树内各结点的度的最大值称为树的度

3.结点的层次和树的深度

 结点的层次(level)从根开始定义,层次数为1的结点是根结点,其子树的根的层次数为2

树中结点的最大层次数称为树的深度或高度

父亲、儿子、兄弟

父亲(parent):一个结点的直接前驱结点

儿子(child):一个结点的直接后继结点

兄弟(sibling):同一个父亲结点的其他结点

例如:结点A是结点B、C、D的父亲,结点B、C、D是结点A的孩子

由于结点H、I、J有同一个父结点D,因此它们互为兄弟

祖先、子孙、堂兄弟

结点的祖先是从根结点到该结点路径上的所有结点

以某结点为根的树中的任意结点都称为该结点的子孙

父亲在同一层次的结点互为堂兄弟

例如:结点K的祖先为E、B、A,结点B的子孙为E、F、K、L

K、L、M互为堂兄弟

4.有序树、M叉树、森林

如果将树中结点的各子树看成是从左至右是有次序的,则称该树为有序树

若不考虑子树的顺序,则为无序树

对于有序树,我们可以明确的定义每个结点的第一个孩子,第二个孩子等,直到最后一个孩子

若不特别指明,我们讨论的都是有序树

树中所有结点的最大度数为m的有序树称为m叉树

森林(forest)是m(m>=0)棵互不相交的树的集合,对树中每个结点而言,其子树的集合称为森林

树和森林的概念相近。删去一个树的根,就得到一个森林。反之加上一个结点为树根,森林就变为一棵树

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值