树的定义与基本术语

本文介绍了树这一重要的数据结构,包括其基本概念、逻辑结构图示、不同表示法以及相关术语。树的结点包含信息和分支,度表示子树数量,叶子结点是度为0的结点,而分支结点则有子结点。此外,还讲解了树的层次、高度、孩子、双亲等概念,并提到了有序树、同构树以及森林的定义。最后,概述了树的抽象数据类型定义。
摘要由CSDN通过智能技术生成

树的基本概念

树:是n(n≥0)个结点的有限集T。在任意一棵非空树中:
① 有且仅有一个特定的结点,称为树的根(root),它没有直接前驱,但有零个或多个直接后继。
② 其余n-1结点可分为m(m≥0)个互不相交的有限集T1,T2,…Tm,其中Ti又是一棵树,称为根的子树。树的定义具有递归性,即“树中还有树”。
树的逻辑结构图示:如同一棵倒长的树
在这里插入图片描述

树的图解表示法

① 倒置树结构表示法(树形表示法)
在这里插入图片描述
② 文氏图表示法(嵌套集合表示法)
在这里插入图片描述
③ 广义表表示法(嵌套括号表示法)
(A(B(E(K,L),F),C(G),D(H(M),I,J)))
④ 凹入表示法
在这里插入图片描述

树的相关术语

结点:即树中的元素,包含本身信息和指向其他结点的分支信息。
结点的度:该结点子树的个数。
树的度:树中所有的结点的度的最大值。
在这里插入图片描述
叶子结点:度为0的结点,即终端结点,简称叶结点、叶子。
分支结点:度不为0的结点,即非终端结点。
结点的层次:从根结点算起,根结点的层次为1,根的直接后继的层次为2,以此类推。
树的高度(深度):树中所有结点的层次的最大值。
孩子:直接后继结点。
双亲:直接前驱结点。
兄弟:拥有同一双亲的结点。
堂兄弟:同层非兄弟的结点。
祖先:从根到该结点经路径上的所有结点。
子孙:直接后继结点和间接后继结点。
前辈:层号比该结点小的结点。
后辈:层号比该结点大的结点。
有序树:在树T中,如果各子树Ti之间有先后次序的,则称为有序树。
同构:对两棵树,通过对结点适当的重命名,就可以使两棵树完全相等(结点对应相等,对应结点的相关关系也相等)。
例:具有3个结点不同构的有序树共5种:
在这里插入图片描述
森林: m(m≥0)个互不相交的树的集合。将一棵非空树的根结点删除,树就变成了森林;反之,给森林增加一个统一的根结点,森林就变成了一棵树。
在这里插入图片描述

树的抽象数据类型定义

ADT Tree{
数据对象:元素集合D,元素特性相同。
数据关系:若D为空,空树;若D仅含一个元素,则R为空;否则R={H},二元关系H={<结点,孩子>,...,<结点,孩子>},根结点root没有前驱,其他结点有且仅有一个前驱,后继结点可以有零个或多个。
基本操作:关于树的运算的集合。
}ADT Tree;

D = { A,B,C,D,E,F,G,H,I,J,K,L,M }
R = { H }
H = { <A,B>,<A,C>,<A,D>,<B,E>, <B,F>,
<E,K>,<E,L>,<C,G>, <D,H>,<D,I>,<D,J>,
<H,M> }
在这里插入图片描述
欢迎大家加我微信交流讨论(请备注csdn上添加)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程子的小段

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值