数据结构——树型结构.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《数据结构——树型结构.ppt》由会员分享,可在线阅读,更多相关《数据结构——树型结构.ppt(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章树型结构树的基本概念树的基本概念 树的遍历树的遍历 树的线性表示树的线性表示 树类的定义树类的定义 树的存储结构树的存储结构 6.1 6.1 树的基本概念树的基本概念 树树树树是由是由是由是由n(n0)n(n0)n(n0)n(n0)个结点构成的有限集合,个结点构成的有限集合,个结点构成的有限集合,个结点构成的有限集合,n=0n=0n=0n=0的的的的树称为树称为树称为树称为空树空树空树空树;当;当;当;当n0n0n0n0时,树中的结点应该满足以下时,树中的结点应该满足以下时,树中的结点应该满足以下时,树中的结点应该满足以下两个条件:两个条件:两个条件:两个条件:(1)(1)(1)(1)有
2、且仅有一个特定的结点称之为有且仅有一个特定的结点称之为有且仅有一个特定的结点称之为有且仅有一个特定的结点称之为根根根根;(2)(2)(2)(2)其余结点分成其余结点分成其余结点分成其余结点分成m(m0)m(m0)m(m0)m(m0)个互不相交的有限集合个互不相交的有限集合个互不相交的有限集合个互不相交的有限集合T T T T1 1 1 1,T T T T2 2 2 2,T T T Tm m m m,其中每一个集合又都是一棵树,称其中每一个集合又都是一棵树,称其中每一个集合又都是一棵树,称其中每一个集合又都是一棵树,称 T T T T1 1 1 1,T,T,T,T2 2 2 2,T T T Tm
3、 m m m为根结点的为根结点的为根结点的为根结点的子树子树子树子树。BDEFGAHIJKC图图图图6.16.1 在树中采用线段连接两个相关联的结点,如在树中采用线段连接两个相关联的结点,如在树中采用线段连接两个相关联的结点,如在树中采用线段连接两个相关联的结点,如A A A A和和和和B B B B,D D D D和和和和H H H H等。其中等。其中等。其中等。其中A A A A和和和和D D D D是上端结点,是上端结点,是上端结点,是上端结点,B B B B和和和和H H H H是下端结点。是下端结点。是下端结点。是下端结点。称称称称A A A A、D D D D分别是分别是分别是分别
4、是B B B B、H H H H的的的的双亲双亲双亲双亲(或(或(或(或父母父母父母父母或或或或前件前件前件前件),),),),B B B B和和和和H H H H分分分分别为别为别为别为A A A A和和和和D D D D的的的的子女子女子女子女(或(或(或(或孩子孩子孩子孩子或或或或后件后件后件后件)。显然,双亲和子)。显然,双亲和子)。显然,双亲和子)。显然,双亲和子女的关系是相对而言的。图女的关系是相对而言的。图女的关系是相对而言的。图女的关系是相对而言的。图6.16.16.16.1中,中,中,中,B B B B是是是是A A A A的子女,但又的子女,但又的子女,但又的子女,但又是是
5、是是E E E E和和和和F F F F的双亲。由于的双亲。由于的双亲。由于的双亲。由于E E E E和和和和F F F F的双亲为同一结点,称的双亲为同一结点,称的双亲为同一结点,称的双亲为同一结点,称E E E E和和和和F F F F互为互为互为互为兄弟兄弟兄弟兄弟。在任何一棵树中,除根结点外,其它任何。在任何一棵树中,除根结点外,其它任何。在任何一棵树中,除根结点外,其它任何。在任何一棵树中,除根结点外,其它任何一个结点有且仅有一个双亲,有一个结点有且仅有一个双亲,有一个结点有且仅有一个双亲,有一个结点有且仅有一个双亲,有0 0 0 0个或多个子女,且它个或多个子女,且它个或多个子女,
6、且它个或多个子女,且它的子女恰巧为其子树的根结点。我们将一结点拥有的的子女恰巧为其子树的根结点。我们将一结点拥有的的子女恰巧为其子树的根结点。我们将一结点拥有的的子女恰巧为其子树的根结点。我们将一结点拥有的子女数称为该子女数称为该子女数称为该子女数称为该结点的度结点的度结点的度结点的度,树中所有结点度的最大值称,树中所有结点度的最大值称,树中所有结点度的最大值称,树中所有结点度的最大值称为为为为树的度树的度树的度树的度。图。图。图。图6.16.16.16.1中,中,中,中,A A A A的度为的度为的度为的度为3 3 3 3,B B B B的度为的度为的度为的度为2 2 2 2,而,而,而,而
7、C C C C的度的度的度的度为为为为0 0 0 0,整棵树的度为,整棵树的度为,整棵树的度为,整棵树的度为3 3 3 3。称度为。称度为。称度为。称度为0 0 0 0的结点为的结点为的结点为的结点为终端结点终端结点终端结点终端结点或或或或叶叶叶叶子结点子结点子结点子结点,称度不为,称度不为,称度不为,称度不为0 0 0 0的结点为非的结点为非的结点为非的结点为非终端结点终端结点终端结点终端结点或或或或分支结点分支结点分支结点分支结点。显然,显然,显然,显然,A A A A、B B B B、D D D D、H H H H均为分支结点,而均为分支结点,而均为分支结点,而均为分支结点,而E E E
8、 E、F F F F、C C C C、G G G G、J J J J、K K K K、I I I I均为叶子结点。均为叶子结点。均为叶子结点。均为叶子结点。称树中连接两个结点的线段为称树中连接两个结点的线段为称树中连接两个结点的线段为称树中连接两个结点的线段为树枝树枝树枝树枝。在树中,。在树中,。在树中,。在树中,若从结点若从结点若从结点若从结点K K K Ki i i i开始沿着树枝自上而下能到达结点开始沿着树枝自上而下能到达结点开始沿着树枝自上而下能到达结点开始沿着树枝自上而下能到达结点K K K Kj j j j,则称从则称从则称从则称从K K K Ki i i i到到到到K K K K
9、j j j j存在一条存在一条存在一条存在一条路径路径路径路径,路径的长度等于所经,路径的长度等于所经,路径的长度等于所经,路径的长度等于所经过的树枝的条数。在图过的树枝的条数。在图过的树枝的条数。在图过的树枝的条数。在图6.16.16.16.1中,从结点中,从结点中,从结点中,从结点A A A A到结点到结点到结点到结点J J J J存在存在存在存在一条路径,路径的长度为一条路径,路径的长度为一条路径,路径的长度为一条路径,路径的长度为3 3 3 3;从;从;从;从D D D D到到到到K K K K也存在一条路径,也存在一条路径,也存在一条路径,也存在一条路径,路径的长度为路径的长度为路径
10、的长度为路径的长度为2 2 2 2。仔细观察不难发现,从树根到树中。仔细观察不难发现,从树根到树中。仔细观察不难发现,从树根到树中。仔细观察不难发现,从树根到树中任何一个结点均存在一条路径。任何一个结点均存在一条路径。任何一个结点均存在一条路径。任何一个结点均存在一条路径。将从树根到某一结点将从树根到某一结点将从树根到某一结点将从树根到某一结点K K K Ki i i i的路径中的路径中的路径中的路径中K K K Ki i i i前所经过的前所经过的前所经过的前所经过的所有结点称为所有结点称为所有结点称为所有结点称为K K K Ki i i i的的的的祖先祖先祖先祖先;反之,以某结点;反之,以
11、某结点;反之,以某结点;反之,以某结点K K K Ki i i i为根的为根的为根的为根的子树中的任何一个结点都称为子树中的任何一个结点都称为子树中的任何一个结点都称为子树中的任何一个结点都称为K K K Ki i i i的的的的子孙子孙子孙子孙。图。图。图。图6.16.16.16.1中,中,中,中,A A A A、D D D D、H H H H均为均为均为均为J J J J和和和和K K K K的祖先,而的祖先,而的祖先,而的祖先,而G G G G、H H H H、I I I I、J J J J和和和和K K K K均为均为均为均为D D D D的的的的子孙。子孙。子孙。子孙。树中树中树中树
12、中结点的层次结点的层次结点的层次结点的层次:从树根开始定义,根结点为:从树根开始定义,根结点为:从树根开始定义,根结点为:从树根开始定义,根结点为第一层,根的子女结点构成第二层,依次类推,若第一层,根的子女结点构成第二层,依次类推,若第一层,根的子女结点构成第二层,依次类推,若第一层,根的子女结点构成第二层,依次类推,若某结点某结点某结点某结点K K K Kj j j j位于第位于第位于第位于第i i i i层,则其子女就位于第层,则其子女就位于第层,则其子女就位于第层,则其子女就位于第i+1i+1i+1i+1层。称层。称层。称层。称树中结点的最大层次数为树的树中结点的最大层次数为树的树中结点
13、的最大层次数为树的树中结点的最大层次数为树的深度深度深度深度或或或或高度高度高度高度。图。图。图。图6.16.16.16.1中,中,中,中,A A A A结点位于第一层,结点位于第一层,结点位于第一层,结点位于第一层,B B B B、C C C C、D D D D位于第位于第位于第位于第2 2 2 2层,层,层,层,E E E E、F F F F、G G G G、H H H H和和和和I I I I位于第三层等等,整棵树的高度为位于第三层等等,整棵树的高度为位于第三层等等,整棵树的高度为位于第三层等等,整棵树的高度为4 4 4 4。若树中任意结点的子树均看成是从左到右有次若树中任意结点的子树均
14、看成是从左到右有次若树中任意结点的子树均看成是从左到右有次若树中任意结点的子树均看成是从左到右有次序的,不能随意交换,则称该树是序的,不能随意交换,则称该树是序的,不能随意交换,则称该树是序的,不能随意交换,则称该树是有序树有序树有序树有序树;否则称;否则称;否则称;否则称之为之为之为之为无序树无序树无序树无序树。下图。下图。下图。下图6.36.36.36.3中的两棵树,若看成是有序树,中的两棵树,若看成是有序树,中的两棵树,若看成是有序树,中的两棵树,若看成是有序树,它们是不等价的;若看成是无序树,两者相等。它们是不等价的;若看成是无序树,两者相等。它们是不等价的;若看成是无序树,两者相等。
15、它们是不等价的;若看成是无序树,两者相等。DCEFABDEFAB 由由m(mm(m0)0)棵互不相交的树构成的集合称为棵互不相交的树构成的集合称为森森林林。森林和树的概念十分相近,一棵树中每个结点,。森林和树的概念十分相近,一棵树中每个结点,其子树的集合即为一个森林;而在森林中的每棵树其子树的集合即为一个森林;而在森林中的每棵树之上加一个共同的根,森林就成为了一棵树。之上加一个共同的根,森林就成为了一棵树。C图图6.3 6.3 有序树和无序树的比较有序树和无序树的比较 树型结构的其他表示方法:树型结构的其他表示方法:树型结构的其他表示方法:树型结构的其他表示方法:A(B(E,F),C,D(G,
16、H(J,K),I)A(B(E,F),C,D(G,H(J,K),I)(a)(a)(a)(a)图图图图6.16.16.16.1的括号表示法的括号表示法的括号表示法的括号表示法BHJKGIEFDCA(b)图图图图6.16.16.16.1的的的的嵌套集合表示法ABEFCDGHJKI (C)图图图图6.16.16.16.1的的的的凹入表示法 6.2 6.2 树类的定义树类的定义 ADT tree ADT tree ADT tree ADT tree 数据对象数据对象数据对象数据对象D D D D:具有相同性质的数据元素构成的有限具有相同性质的数据元素构成的有限具有相同性质的数据元素构成的有限具有相同性质
17、的数据元素构成的有限 集合。集合。集合。集合。数据关系数据关系数据关系数据关系R R R R:如果如果如果如果D D D D为空或为空或为空或为空或D D D D仅含一个元素,则仅含一个元素,则仅含一个元素,则仅含一个元素,则R R R R为为为为 空;否则空;否则空;否则空;否则D D D D中存在一个特殊的结点中存在一个特殊的结点中存在一个特殊的结点中存在一个特殊的结点rootrootrootroot,称称称称 之为根结点,其无前驱;其它结点被分成互之为根结点,其无前驱;其它结点被分成互之为根结点,其无前驱;其它结点被分成互之为根结点,其无前驱;其它结点被分成互 不相交的不相交的不相交的不
18、相交的m(mm(mm(mm(m 0)0)0)0)个集合,分别构成个集合,分别构成个集合,分别构成个集合,分别构成rootrootrootroot的的的的m m m m 棵子树;若这些子树非空,则它们的根结点棵子树;若这些子树非空,则它们的根结点棵子树;若这些子树非空,则它们的根结点棵子树;若这些子树非空,则它们的根结点 rootrootrootrooti i i i均称为整棵树根结点均称为整棵树根结点均称为整棵树根结点均称为整棵树根结点rootrootrootroot的后继结点;的后继结点;的后继结点;的后继结点;而每棵子树也是一棵树,因而它们中数据元而每棵子树也是一棵树,因而它们中数据元而每
19、棵子树也是一棵树,因而它们中数据元而每棵子树也是一棵树,因而它们中数据元 素间的关系也同样满足素间的关系也同样满足素间的关系也同样满足素间的关系也同样满足R R R R的定义。的定义。的定义。的定义。树的基本操作如下:树的基本操作如下:树的基本操作如下:树的基本操作如下:(1 1 1 1)InittreeInittreeInittreeInittree(T)(T)(T)(T)(2 2 2 2)CleartreeCleartreeCleartreeCleartree(T)(T)(T)(T)(3 3 3 3)EmptytreeEmptytreeEmptytreeEmptytree(T)(T)(T)
20、(T)(4 4 4 4)Root(T)Root(T)Root(T)Root(T)(5 5 5 5)Child(T,a,i)Child(T,a,i)Child(T,a,i)Child(T,a,i)(6 6 6 6)Parent(T,a)Parent(T,a)Parent(T,a)Parent(T,a)(7 7 7 7)Degree(T,a)Degree(T,a)Degree(T,a)Degree(T,a)(8 8 8 8)Depth(T)Depth(T)Depth(T)Depth(T)(9 9 9 9)Choose(T,C)Choose(T,C)Choose(T,C)Choose(T,C)(10
21、101010)AddchildAddchildAddchildAddchild(T,a,i,t1T,a,i,t1T,a,i,t1T,a,i,t1)(11111111)DelchildDelchildDelchildDelchild(T,a,i)(T,a,i)(T,a,i)(T,a,i)(12121212)CreatetreeCreatetreeCreatetreeCreatetree(a,F)(a,F)(a,F)(a,F)(13131313)EqualtreeEqualtreeEqualtreeEqualtree(T1,T2)(T1,T2)(T1,T2)(T1,T2)(14141414)Num
22、ofnodeNumofnodeNumofnodeNumofnode(T)(T)(T)(T)(15151515)preorder(T)preorder(T)preorder(T)preorder(T)(16161616)postorderpostorderpostorderpostorder(T)(T)(T)(T)(17171717)levelorderlevelorderlevelorderlevelorder(T)(T)(T)(T)(18181818)DestroytreeDestroytreeDestroytreeDestroytree(T)(T)(T)(T)ADT Tree ADT Tr
23、ee ADT Tree ADT Tree 6.3 6.3 树的存储结构树的存储结构 根据数据元素之间关系的不同表示方式,常用的根据数据元素之间关系的不同表示方式,常用的根据数据元素之间关系的不同表示方式,常用的根据数据元素之间关系的不同表示方式,常用的树存储结构主要有三种:双亲表示法、孩子表示法和树存储结构主要有三种:双亲表示法、孩子表示法和树存储结构主要有三种:双亲表示法、孩子表示法和树存储结构主要有三种:双亲表示法、孩子表示法和孩子兄弟表示法。孩子兄弟表示法。孩子兄弟表示法。孩子兄弟表示法。6.3.1 6.3.1 双亲表示法双亲表示法 在树中,除根结点没有双亲外,其他每个结点的在树中,除根
24、结点没有双亲外,其他每个结点的在树中,除根结点没有双亲外,其他每个结点的在树中,除根结点没有双亲外,其他每个结点的双亲是唯一确定的。因此,根据树的这种性质,存储双亲是唯一确定的。因此,根据树的这种性质,存储双亲是唯一确定的。因此,根据树的这种性质,存储双亲是唯一确定的。因此,根据树的这种性质,存储树中结点时,可以包含两个信息:结点的值树中结点时,可以包含两个信息:结点的值树中结点时,可以包含两个信息:结点的值树中结点时,可以包含两个信息:结点的值datadatadatadata和体和体和体和体现结点之间相互关系的属性现结点之间相互关系的属性现结点之间相互关系的属性现结点之间相互关系的属性_该结
25、点的双亲该结点的双亲该结点的双亲该结点的双亲parentparentparentparent。借助于每个结点的这两个信息便可唯一地表示任何一借助于每个结点的这两个信息便可唯一地表示任何一借助于每个结点的这两个信息便可唯一地表示任何一借助于每个结点的这两个信息便可唯一地表示任何一棵树。这种表示方法称为棵树。这种表示方法称为棵树。这种表示方法称为棵树。这种表示方法称为双亲表示法双亲表示法双亲表示法双亲表示法。#define MAXSIZE 100 define MAXSIZE 100 define MAXSIZE 100 define MAXSIZE 100 typedeftypedeftyped
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 结构
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内