结点树数据结构:树的定义和基本概念

文章结束给大家来个程序员笑话:[M]

    一、树(Tree)是n(n>=0)个结点的限有集。n=0时称为空树。在恣意一棵非空树中:(1)有且有仅一个特定的称为根(root)的结点。

    (2)当n>1时,其余结点可分为m(m>0)个互不交相的限有集T1,T2,....,Tm, 其中每个集合本身又是一棵树,并且称为根的子树(SubTree),如图1所示:

    结点树数据结构:树的定义和基本概念_第1张图片图1

    树的义定中之还用到了树的念概,即递归义定。如图2中的子树T1和T2就是根结点A的子树。当然D,G,H,I 构成的的树又是B结点的子树,E,J 构成的树是C结点的子树。

    结点树数据结构:树的定义和基本概念_第2张图片图2

    对于树的义定还需要意注两点:

    1.n>0时根结点是一唯的,不可能存在多个根结点。

    2.m>0时,子树的个数没限有制,但它们一定是互不交相的。如图3中的两个结构就不符合树的义定,因为它们都有交相的子树。

    结点树数据结构:树的定义和基本概念_第3张图片图3

    二.树的结点包括一个数据素元及多少指向其子树的分支。结点具有的子树称为结点的度(Degree)。度为0的结点称为叶结点(Leaf)或端终结点;度不为0的结点称为非端终结点或分支结点,除根结点外之,分支结点也称为部内结点。树的度是树内各结点的度的最大值。如图4,因为这棵树结点的度的最大值是结点D的度3,所以树的度也为3。

    结点树数据结构:树的定义和基本概念_第4张图片图4

    结点的子树的根称为该结点的孩子(Child),响应地,该结点称为孩子的双亲(Parent),一同个双亲的孩子之间互称为兄弟(Sibling)。结点的先祖是从根到该结点所经分支上的全部结点。所以对于H说来,D,B,A都是它的先祖。反之,以某结点为根的子树中的任一结点都称为该结点的子孙。B的子孙有D,G,H,I,如图5所示。

    结点树数据结构:树的定义和基本概念_第5张图片图5

    每日一道理
最为值得珍惜的是今天,因为最容易流逝的就是今天,把握今天就是把握希望,分分秒秒只是瞬间,而所乘载的分分秒秒就叫做一天,时间的流逝往往是在不经意之间,人生几回,青春更珍贵,对于我们这个年龄的青少年说来,青春已不足二十载,在学习的生活中我们必须靠自己的力量,驾驭着自己的小船驶向希望的彼岸。

    三、结点的次层(Level)从根开始义定起,根为第一层,根的孩子为第二层。其双亲在一同层的结点互为从兄弟。显然在图6中D,E,F都是从兄弟,而G,H,I 与 J也是从兄弟。树中结点的 最大次层称为树的深度(Depth)或度高,以后树的深度为4。

    结点树数据结构:树的定义和基本概念_第6张图片图6

    若将树中每个结点的各子树看成是从左到右有序次的(即不能互换),则称该树为有序树(OrderedTree);否则称为无序树(UnorderedTree)。意注:若不特殊指明,一般论讨的树都是有序树。

    丛林(Forest)是m(m≥0)棵互不交相的树的集合。对树中每个结点而言,其子树的集合即为丛林。对于图1的树而言,图2的两棵子树其实以可就理解为丛林。树和丛林的念概邻近。删去一棵树的根,就失掉一个丛林;反之,加上一个结点作树根,丛林就变成一棵树。

    比对线性表与树的结构,它们有很大不同,如图7所示。

    结点树数据结构:树的定义和基本概念_第7张图片图7

    

    参考:《谎话数据结构》

    

    

文章结束给大家分享下程序员的一些笑话语录: 某程序员对书法十分感兴趣,退休后决定在这方面有所建树。花重金购买了上等的文房四宝。一日突生雅兴,一番磨墨拟纸,并点上了上好的檀香,颇有王羲之风 范,又具颜真卿气势,定神片刻,泼墨挥毫,郑重地写下一行字:hello world.

你可能感兴趣的:(数据结构)