树结构的一些基本术语

       树形结构是一类重要的非线性数据结构.其中以树和二叉树最为常用,直观看来,树是以分支关系定义的层次结构.树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树来形象表示.下面总结一下对于树的一些基本概念的描述.

先来一张图方便理解   

1. 树(Tree) 是n(n>=0)个结点的有限集.

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

    例如, 在上图中, (a) 是只有一个根结点的树; (b) 是有13个结点的树, 其中 A是根(Root) , 其余结点分成3个互不相交的子集: T1={ B , E , F , K , L }, T2={ C , G }, T3={ D , H , I , J , M } ; T1, T2 和 T3 都是 根A的子树, 且本身也是一棵树. 例如T1,其根为B, 其余结点分为两个互不相交的子集; T11={ E , K , L } , T12={ F }. T11 和 T12 都是 B的子树. 而 T11 中E是根, { K } 和 { L } 是E的两棵互不相交的子树, 其本身又是只有一个根结点的树.

下面列出树结构中的一些基本术语.

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

2. 结点拥有的子树数称为 结点的度(Degree). 例如, 在上图(b)中, A的度为3, C的度为1, F的度为0. 度为0的结点称为 叶子(Leaf)或终端结点. 上图(b)中的结点 K , L , F , G , M , I , J 都是树的叶子. 度不为0的结点 称为 非终端结点 或 分支结点 . 除根结点之外, 分支结点也称为内部结点. 树的度 是树内各结点的度的最大值. 上图(b)的树的度为 3 .

3.  结点的子树的根称为该 结点的孩子(Child), 相应地, 该结点称为 孩子的双亲(Parent) . 例如, 在上图(b)中所示的树中, D为A的子树T3的根, 则D是A的孩子, 而A则是D的双亲 , 同一个双亲的孩子之间互称兄弟(Sibling). 例如, H , I  和 J 互为兄弟. 将这些关系进一步推广, 可认为D是M的祖父. 结点的祖先(Ancestor)是从根到该结点所经分支上的所有结点. 例如, M的祖先为 A , D 和 H .反之, 以某结点为根的子树中的任一结点都称为该结点的子孙(Descendant). 如B的子孙为 E , K , L 和 F.

4. 结点的 层次(Level) 从根开始定义起, 根为第一层, 根的孩子为第二层. 若某结点在第L层, 则其子树的根就在第L+1层. 其双亲在同一层的结点互为 堂兄弟 . 例如, 结点G与 E , F , H , I , J 互为堂兄弟. 树中结点的最大层次称为树的 深度(Depth) 高度 . 上图b所示的树的深度为 4 .

5. 如果将树中结点的各子树看成从左至右是有次序的(即不能互换), 则称该数为 有序树 ,否则称为 无序树 . 在有序树中最左边的子树的根称为第一个孩子, 最右边的称为最右一个孩子.

6. 森林(Forest) 是m(m>=0)棵互不相交的树的集合. 对树中每个结点而言, 其子树的集合即为森林. 由此 , 也可以森林和树相互递归的定义来描述树.

   就逻辑结构而言,任何一棵树是一个二元组 Tree=( root , F ) , 其中: root是数据元素, 称做树的根结点 ; F 是m(m>=0) 棵树的森林, F=( T1 , T2 , ... , Tm ), 其中 T i =( r i , F i )称做 根root 的第 i 棵子树; 当m != 0 时, 在树根和其子树森林之间存在下列关系 :

                                     RF={ < root , r i > | i = 1 , 2 , ... , m , m>0 }

这个定义将有助于得到森林和树与二叉树之间转换的递归定义.

 

下面来自转载的文章:

数据结构和算法——二叉树: https://blog.csdn.net/google19890102/article/details/53926704

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值