网站大量收购闲置独家精品文档,联系QQ:2885784924

则相对于深度优先生成树T.PPT

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
则相对于深度优先生成树T

第五章 基本检索与周游 1.检索与周游 检索:以某种方法检查给定的数据对象,找出满足某些给定性质的结点的过程称为检索 周游:当检索过程必须检索到数据对象的每一个结点时,则该检索过程称为周游 访问结点:当算法对一个结点的信息段进行处理时,称该结点被访问。 2. 二元树周游(遍历) 1)周游次序 在二元树的周游中,以D、L、R分别代表访问结点的信息段、访问左子树、访问右子树。则可能的顺序有: ★ LDR:中根次序周游(中根遍历) ★ LRD:后根次序周游(后根遍历) ★ DLR:先根次序周游(先根遍历) ★ RDL:逆中根次序周游 ★ RLD:逆后根次序周游 ★ DRL:逆先根次序周游 2)二元树周游算法 ⑴ 中根次序周游 算法5.1 中根次序周游的递归表示 procedure INORDER(T) //T是一棵二元树。T的每个结点有三个信息段:LCHILD, DATA,RCHILD// if T≠0 then call INORDER(LCHILD(T)) call VISIT(T) call INORDER(RCHILD(T)) endif end INORDER ⑵先根次序周游 算法5.2 先根次序周游的递归表示 procedure PREORDER(T) //T是一棵二元树。T的每个结点有三个信息段:LCHILD, DATA,RCHILD// if T≠0 then call VISIT(T) call PREORDER(LCHILD(T)) call PREORDER(RCHILD(T)) endif end PREORDER ⑵后根次序周游 算法5.2 后根次序周游的递归表示 procedure POSTORDER(T) //T是一棵二元树。T的每个结点有三个信息段:LCHILD, DATA,RCHILD// if T≠0 then call POSTORDER(LCHILD(T)) call POSTORDER(RCHILD) call VISIT(T) endif end PREORDER 注: 一棵二元树可由中根遍历序列+先根遍历序列、或中根遍历序列+后根遍历序列唯一确定。但不能由先根遍历序列+后根遍历序列唯一确定。 如已知一棵二元树的中根遍历次序是:DGBEAFHC 先根遍历次序是:ABDGECFH 则这棵二元树唯一确定如下: 定理5.1 当输入的树T有n≥0个结点时,设t(n)和s(n)分别表示这些周游算法中的任意一个算法所需要的最大时间和空间。如果访问一个结点所需要的时间和空间是Θ(1),则t(n)=Θ(n), s(n)=Θ(n)。 证明: 时间:由于已知访问一个结点所需要的时间是Θ(1),故可用常数c1限界。 设T的左子树中的结点数是n1,则t(n)有: t(n)=maxn1{t(n1)+t(n-n1-1)+c1} n≥1 其中,t(0)≤c1。 归纳法证明t(n)≤c2n+c1,其中c2是一使得c2≥2c1的常数。 1)当n=0时,成立 2)假定当n=0,1,…,m-1时均成立。则当n=m时有, 设T是一棵有m个结点的树,T左子树结点数为n1,则 t(n)=maxn1{t(n1)+t(n-n1-1)+c1} ≤maxn1{c2n1+c1+c2(n-n1-1)+c1+c1} =maxn1{c2n+3c1-c2} ≤c2n+c1 同理,存在c2和c1有t(n)≥c2n+c1。所以t(n)=Θ(n) 空间:若T的深度为d,则所需空间为Θ(d), d≤n,所以s(n)=Θ(n)。 3. 树的周游 1) 树的子树顺序 无序→有序 2)森林F的周游 ⑴ 树的先根次序周游 A.若F为空

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档