码迷,mamicode.com
首页 > 其他好文 > 详细

树的基本定义

时间:2017-09-26 09:26:52      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:数据结构      

    先摘录书中一段关于树的定义:

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

技术分享

其实,我个人觉得这段定义还是蛮抽象的。不过,根据定义来看,树的定义有点像家族的族谱,最上面的是祖父母,然后接着是你的父母亲,再往下一层是你和你老婆(或者是老公),然后下一层是你们的儿女,就这样一层层往下。那么用一句话来说就是,树就是不包含回路的无向连通图。不包含回路,换言之,就是任意两个结点间有且只有一条路径。所以,总的来说,如果符合一棵树,则,一,任意两个结点之间有且只有一条路径。二,如果一棵树有n个结点,则这棵树有(n-1)条边。三,在一棵树中加一条边,则会构成回路。

    树也是由一个个结点构成,也就是说,同一棵树可以有不同的形态,为了确定树的形态,我们可指定一个特殊的结点,将其称之为“根节点”。需要注意的是,一棵树有且只有一个根节点。因为,根节点又是一棵树起始的地方,所以,根节点又称为“祖先”。既然,有祖先,就会有父亲,儿子。如上图所示,A就是根节点,B和C就是A的儿子,所以,B和C就称之为,子节点,但是B又是E的父亲,所以,B既是子节点又是父节点。对于像G、H、I、J、F这样的没有后代的结点称为,叶节点(叶节点也称为终端结点)。如果一个结点既不是叶节点也不是根节点,那么它就称之为,内部结点(也称为分支结点)。

    关于树还有一个概念,就是,深度。什么是深度呢?深度就是从根节点到该结点层数。比如,G、H、I、J结点的深度就是4,;E、F的深度就是3;B、C的深度就是2。那么一棵树的深度就是,结点的最大深度,所以该树的最大深度就是4。

    度。什么是度?结点拥有的子树数称为度。比如B结点的子树数为1,因为它只有E这么一棵子树,所以B结点的度为1;E结点的子树数为3,因为它的子树有,G、H、I三棵,所以E结点的度为3。而树的度,则是树内各结点的度的最大值。所以,如上图所示,该图中的树的度为3。

    森林。对于树中的每个结点而言,其子树的集合就是森林。

本文出自 “梵高说我脑子有病” 博客,请务必保留此出处http://chen0547.blog.51cto.com/12489941/1968615

树的基本定义

标签:数据结构      

原文地址:http://chen0547.blog.51cto.com/12489941/1968615

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!