- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 树和二叉树 ;6.1 树的定义和基本术语 ;图6.1 树的图示方法; ADT Tree
数据对象D:一个集合,该集合中的所有元素具有相同的特性。
数据关系R: 若D为空集,则为空树。若D中仅含有一个数据元素,则R为空集,否则R={H},H是如下的二元关系:
(1) 在D中存在唯一的称为根的数据元素root,它在关系H下没有前驱。 (2)若D-{ root }≠ф,则存在D-{ root }的一个划分D1,D2…Dm ( m0 ) 对任意j≠k ( 1≤j, k≤m ) 有Dj∩Dk=ф,且对任意的i( 1≤i≤m ) 唯一存在数据元素 xi﹥∈H.
(3)对应于D-{ root }的划分,H-{ root,x1,… root,xm }有唯一的一个划分H1,H2,…,Hm ( m0 ), 对任意j≠k ( 1≤j, k≤m )有Hj∩Hk=ф,且对任意i(1≤i≤m ) ,H1是Di上的二元关系,(Di, { Hi })是一棵符合本定义的树,成为根root的子树。 ;树的基本术语
· 结点:包含一个数据元素及若干指向其它结点的分支信息。
· 结点的度:一个结点的子树个数称为此结点的度。
· 叶子结点:度为0的结点,即无后继的结点,也称为终端结点。
· 分支结点:度不为0的结点,也称为非终端结点。
· 孩子结点:一个结点的直接后继称为该结点的孩子结点。在图6.1中, B、C是A的孩子。
· 双亲结点:一个结点的直接前驱称为该结点的双亲结点。在图6.1中,A 是B、C的双亲。
· 兄弟结点:同一双亲结点的孩子结点之间互称兄弟结点。在图6.1中,结点H、I、 J互为兄弟结点。 ; ·堂兄弟:双亲在同一层的结点互为堂兄弟。
·祖先结点:一个结点的祖先结点是指从根结点到该结点的路径上的所有结点。在图6.1中,结点K的祖先是A、B、E。
·子孙结点:以某结点为根的子树中的任一结点都称为该结点的子孙 。在图6.1中,结点D的子孙是H、I、 J、 M。
·结点的层次:从根结点开始定义,根结点的层次为1,根的直接后继的层次为2,依此类推。
·树的度: 树中所有结点的度的最大值。
·树的高度(深度): 树中所有结点的层次的最大值。
·有序树:在树T中,如果各子树Ti之间是有先后次序的,则称为有序树。否则称为无序树 。
·森林:m(m≥0)棵互不相交的树的集合。将一棵非空树的根结点删去,树就变成一个森林;反之,给森林增加一个统一的根结点,森林就变成一棵树。 ;6.2 二叉树的定义 ;图6.2 二叉树的五种基本形态。 ; 与树的基本操作类似,二叉树有如下基本操作:
(1) InitBiTree(T);
操作结果:构造空二叉树。
(2) DestoryBitree(T);
初始条件:二叉树T存在。
操作结果:销毁二叉树T。
(3) GreateBiTree(T,definition);
初始条件:definition给出二叉树T的定义。
操作结果:按definition构造二叉树T。
(4) ClearBiTree(T);
初始条件:二叉树T存在。
操作结果:将二叉树T清为空树。; (5) BiTreeEmpty(T);
初始条件:二叉树T存在。
操作结果:若T为空二叉树,则返回TRUE,否则FLASE。
(6) BiTreeDepth(T);
初始条件:二叉树T存在。
操作结果:返回T的深度。
(7) Root(T);
初始条件:二叉树T存在。
操作结果:返回T的根。
(8) Value(T,e);
初始条件:二叉树T存在,e是T中某个结点。
操作结果:返回e的值。; (9) Assign(T,e,value);
初始条件:二叉树T存在,e是T中某个结点。
文档评论(0)