数据结构(6)树

树是n个结点的有限集。

n=0时称为空树。

在任意一排非空树中:(1)有且仅有一个特定的称为根的结点;
(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、----------、Tm。其中每一个几何本身又是一棵树,并称为根的子树。

树的定义

一对多
在这里插入图片描述
对于树的定义强调两点:

1、n>0时根节点是唯一的,不可能存在多个根节点,别和现实中的大树混在一起,数据结构中的数只能有一个根结点。

2、m>0时,子树的个数没有限制,但是他们一定是互不相交的。

在这里插入图片描述
不是树

结点分类:

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

度为0的结点称为叶结点或终端结点;度不为0的结点称为非终端结点或分支结点。

除根结点外,分支结点也称为内部结点。

树的度是树内各结点的度的最大值 (取结点最大度值)

结点的子树的根称为该结点的孩子,相应的该结点称为孩子的双亲。

同一个双亲的孩子之间互称兄弟。结点的祖先是从根到该结点所经分支上的所有结点。

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

树的其他相关概念

结点的层次从根的定义开始起,根为第一层,根的孩子为第二层。

若某结点在第l层,则其子树的根就在第l+1层。其双亲在同一层的结点互为堂兄弟。

树中结点的最大层次称为树的深度或高度下面这个树的深度为4

在这里插入图片描述
如果将树中结点的各子树看成从左至右是有次序的,不能互换的,则称该树为有序树,否则称为无序树。

森林是m颗互不相交的树的集合。
在这里插入图片描述
树的抽象数据类型

在这里插入图片描述
树的存储结构

双亲表示法在每个结点中,附设一个指示器指示其双亲结点到链表中的位置。

在这里插入图片描述

孩子表示法

每个结点有多个指针域,其中每个指针指向一颗子树的根结点,我们把这种方法叫做多重链表表示法。

我们专门取一个位置来存储结点指针域的个数。

在这里插入图片描述
在这里插入图片描述
这种方法克服了浪费空间的缺点,对空间的利用率是很高了,但由于各个结点的链表结构不同,加上要维护结点的度的数值,运算上就有时间损耗。

孩子表示法的具体办法是:把每个结点的孩子结点排列起来,以单链表做存储结构,则n个结点有n个孩子链表,如果是叶子结点则此单链表为空。然后n个头指针又组成一个线性表,采用顺序存储结构,存放进一个一维数组。

在这里插入图片描述
这个结构方便找孩子,或者找某个结点的兄弟,只需要查找这个结点的孩子单链表即可。

将双亲表示法和孩子表示法综合使用
称为双亲孩子表示法

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值