浅谈树(入门)

关于树的一些定义

          树是n(n>=0)个 结点的有限集合,n = 0 时称为空树,这是一种特殊情况。
     在任意一棵非空树中应满足:
                      (1)有且仅有一个特定的称为根的结点。
                      (2)当 n>1 时,其余节点可分为m个不相交的集合T1,T2.....Tm,其中每个集合本身又是一棵树,且称为根节点的子树
                      
      从树的严格定义可看出:树的定义是递归的,是一种递归的数据结构。从逻辑上看,树是一种分层次的非线性结构,它反映了离散数据与离散数据之间的一中一对多的关系。
            
             给大家举几个例子,让大家感受对于树有一个直观的感性的感受
             
             (1) 建立文件夹时的分层结构:
                               说明:  一个文件夹套多个文件夹或文件,由此类推(从一和多,可以看出是一对多的关系)
                               
             (2) 访问网页时的层次结构:
                               说明: 从一个网页点进其所包含的众多网页里的一个网页,由此类推(从一和众多,可以看出是一对多的关系)
                               
             (3) 一个娃娃里面可以套多个的娃娃的俄罗斯套娃

             (4) 大家初中时候很讨厌的树状图

给大家一个树的例子(大家注意,不论是图片还是定义,还是举的例子,都是从逻辑上去抽象出来的结构,在计算机中的存储结构(映射)不一定是这个样子(下面会说到)在这里插入图片描述
那么结合着上述的理解,我们尝试用其特性去定义它(体现了严格定义与特性之间的充要性)
(1)要么没有离散量
(2)要么在有限个离散量里面,有一个称为根的结点,除了根节点外,其余其他节点 有且仅有一个直接前驱,除了叶子节点(没有左右子树,即左右子树为空)外其余节点只是有一个直接后继。则在有n个节点的树中有n-1条边。

下面给出树中的基本术语:
以上面的图为例
(1).考虑节点P,根A到节点P的唯一路径上的任意节点,称为节点P的祖先节点,如节点E是节点P的祖先节点,而P节点称为E节点的子孙节点,这条路径上最接近结点P的结点J称为节点P的父节点(双亲节点),而P为J的孩子节点,根A是树中唯一没有双亲的结点。有相同父节点的结点称为兄弟结点,如K,L,M有共同双亲节点F,则称K,L,M互为兄弟结点。
(2).树中一个节点的子节点数称为该节点的度,树中结点的最大度数定义为该树的度。例如F的度为3,A的度为6,,整棵树的度为6.
(3)度大于0的结点称为分支结点,度为零的结点称为叶子节点。例如H,P,Q等都为叶子节点。
(4)节点的层次从树根开始定义,根节点为第一层,他的叶子几点为第二层,以此类推,树的高度(又称深度)是树中节点的最大层数。如图的树的高度为4
(5)有序树和无序树:树中节点的子树从左到右是有次序的,不能交换,这样的树称为有序树。有序树中,一个结点的子节点按从左到右的次序出现是有关联的,反之则称无序树。
(6)路径和路径长度:树中两个节点之间的路径是由这两个节点之间所经过的节点序列构成的,而路径长度是路径上所经过边的个数。

树的性质:
1,,树中的结点数等于所有结点的度数加一
2, 度为m的树中第i层上至多有m^(i-1)个节点
3 ,高为h的m叉树至多有(m^h-1)/(m-1)个节点
4,具有n个节点的m叉树最小高度为【log(n(m-1)+1)】的上取整

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值