《算法分析与设计》课程教学资源(PPT课件讲稿)第六章 基本检索与周游方法(一般方法)

第六章基本检索与周游方法
第六章 基本检索与周游方法

问题描述 许多涉及到二元树、树和图的问题 涉及问题中数据结点的访问和处理 有的问题需要访问结构中所有结点,有的 访问结构的部分结点。 本章介绍的方法将适用于树、二元树,有 些方法可以用于图、树、二元树
• 问题描述 • 许多涉及到二元树、树和图的问题 • 涉及问题中数据结点的访问和处理 • 有的问题需要访问结构中所有结点,有的 访问结构的部分结点。 • 本章介绍的方法将适用于树、二元树,有 些方法可以用于图 、树、二元树

61一般方法 1检索与周游 检索:以某种方法检查给定的数据对象,找出满足 某些给定性质的结点的过程称为检索 周游:当检索过程必须检索到数据对象的每一个结 点时,则该检索过程称为周游 访问结点:当算法对一个结点的信息段进行处理时, 称该结点被访问。 结点被访问可以是结点被打印、或作某种处理
6.1 一般方法 1.检索与周游 检索:以某种方法检查给定的数据对象,找出满足 某些给定性质的结点的过程称为检索 周游:当检索过程必须检索到数据对象的每一个结 点时,则该检索过程称为周游 访问结点:当算法对一个结点的信息段进行处理时, 称该结点被访问。 结点被访问可以是结点被打印、或作某种处理

2.二元树周游(遍历) )周游次序 在二元树的周游中,以D、L、R分别代表访问结点 的信息段、访问左子树、访问右子树。则可能的顺序有: ★LDR:中根次序周游(中根遍历) ★LRD:后根次序周游(后根遍历) ★DLR:先根次序周游(先根遍历) ★RDL:逆中根次序周游 ★RLD:逆后根次序周游 ★DRL:逆先根次序周游
2. 二元树周游(遍历) 1)周游次序 在二元树的周游中,以D、L、R分别代表访问结点 的信息段、访问左子树、访问右子树。则可能的顺序有: ★ LDR:中根次序周游(中根遍历) ★ LRD:后根次序周游(后根遍历) ★ DLR:先根次序周游(先根遍历) ★ RDL:逆中根次序周游 ★ RLD:逆后根次序周游 ★ DRL:逆先根次序周游

2)二元树周游算法 (1)中根次序周游 算法6.1中根次序周游的递归表示 procedure INORDER T //是一棵二元树。T的每个结点有三个信息 E: LCHILD, DATA, RCHILD// ifT≠0then call INORDER LCHILD T)) call VISITT call INORDER (RCHILD T) endif end Inorder
2)二元树周游算法 ⑴ 中根次序周游 算法6.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

(2)先根次序周游 算法6.2先根次序周游的递归表示 procedure PREORDER (T 是一棵二元树。T的每个结点有三个信 息段: LCHILD,DATA, RCHILD/ ifT≠0then call VISIT ( T) call PREORDER ( LCHILD (T)) call PREORDER (RCHILD T)) endif end preorder
⑵先根次序周游 算法6.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

(2)后根次序周游 算法6.3后根次序周游的递归表示 procedure POSTORDER T 是一棵二元树。T的每个结点有三个信 息段: LCHILD,DATA, RCHILD/ ifT≠0then call POSTORDER LCHILD T) call POSTORDER(RCHILD(T)) call VISIT(T) endif end preorder
⑵后根次序周游 算法6.3 后根次序周游的递归表示 procedure POSTORDER(T) //T是一棵二元树。T的每个结点有三个信 息段:LCHILD,DATA,RCHILD// if T≠0 then call POSTORDER(LCHILD(T)) call POSTORDER(RCHILD(T)) call VISIT(T) endif end PREORDER

中根次序周游:FD删 HGIBEAC 先根次序周游: ABDFGHIEC 后根次序周游: FHIGDEBCA
• 中根次序周游:FDHGIBEAC • 先根次序周游: ABDFGHIEC • 后根次序周游: FHIGDEBCA A B D E G C H F I

注 棵二元树可由中根遍历序列十先根遍历序列、 或中根遍历序列十后根遍历序列唯一确定。但不能 由先根遍历序列+后根遍历序列唯一确定。 如已知一棵二元树的中根遍历次序是: DGBEAFHC 先根遍历次序是: ABDGECFH 则这棵二元树唯一确定如下: c H
注: 一棵二元树可由中根遍历序列+先根遍历序列、 或中根遍历序列+后根遍历序列唯一确定。但不能 由先根遍历序列+后根遍历序列唯一确定。 如已知一棵二元树的中根遍历次序是: DGBEAFHC 先根遍历次序是:ABDGECFH 则这棵二元树唯一确定如下: A B D E G C F H

定理61当输入的树T有n≥0个结点时,设t(n)和sm)分别表示这些 周游算法中的任意一个算法所需要的最大时间和空间。如果访问一个 结点所需要的时间和空间是⊙(1),则t(n)=e(n),s(n)=e(n)。 证明: 时间:由于已知访问一个结点所需时间是⊙(1),故可用常数c限界。 设T的左子树中的结点数是n1,则t(n)有: t(n)=maxit(n,)+t(n-n-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左子树结点数为n,则 t(n)=maxnit(n,)+t(n-n1-1)+C1 smaxnic2n,+C,+C2(n-n,-1)+c,+c, maxn,c2 n+3c1-C2l ≤ Cntc 同理,存在c’2和c’1有t(n)≥c’n+c'10所以tm)=(m 空间:若T的深度为d,则所需空间为e(d),d≤n,所以s(n)=(n)
定理6.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 同理,存在c ' 2和c ' 1有t(n)≥c ' 2n+c ' 1。所以t(n)=Θ(n) 空间:若T的深度为d,则所需空间为Θ(d), d≤n,所以s(n)=Θ(n)
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《面向对象技术》课程教学大纲 Technology of Object-Oriented Programming.doc
- 厦门大学:Web技术(PPT课件讲稿)网站快速开发 & Web前端技术.ppt
- 机械工业出版社:国家“十一五”规划教材《数据库原理与应用教程》教学资源(PPT课件,第3版)第4章 数据操作.ppt
- 《高级语言程序设计》课程教学资源(试卷习题)试题二(无答案).doc
- 《Photoshop教程》教学资源(PPT课件)第6章 Photoshop的绘图工具.ppt
- 《计算机网络》课程教学大纲 Computer Networks.pdf
- 《VB程序设计》课程教学资源(PPT课件讲稿)第二章 VB语言基础.ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第一章 绪论(主讲:董庆宽).pptx
- 可信计算 Trusted Computing(PPT讲稿)TSS - TCG Software Stack.ppt
- 《Web网站设计与开发》课程教学资源(PPT课件讲稿)第10章 Java Web实用开发技术.ppt
- 电子科技大学:《计算机操作系统》课程教学资源(PPT课件讲稿)第二章 进程与调度 Processes and Scheduling.ppt
- 西安交通大学:《物联网技术导论》课程教学资源(PPT课件)第一章 物联网技术概论(主讲:桂小林).ppt
- 《计算机网络教程》课程PPT教学课件(第三版)第3章 网络体系结构与网络协议.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第9章 用户自己建立数据类型.pptx
- 《The C++ Programming Language》课程教学资源(PPT课件讲稿)Lecture 07 Exception Handling.ppt
- 香港城市大学:《计算机图形学》课程教学资源(PPT课件讲稿)图的算法 Graph Algorithms.ppt
- 白城师范学院:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第五章 数据库完整性.pptx
- 《SQL Server 2000数据库教程》教学资源(PPT课件讲稿)第11章 数据库安全性管理.ppt
- PROGRAMMING METHODOLOGY AND SOFTWARE ENGINEERING.ppt
- 南京大学:移动Agent系统支撑(PPT讲稿)Mobile Agent Communication——Software Agent.pptx
- 南京大学:《面向对象技术 OOT》课程教学资源(PPT课件讲稿)设计模式 Design Patterns(1).ppt
- 上海交通大学:IT项目管理(PPT讲稿)讲座5 目标、范围管理与需求工程.ppt
- 《面向对象建模技术》课程教学资源(PPT课件讲稿)第11章 UML与RUP.ppt
- 中国科学技术大学:《网络信息安全 NETWORK SECURITY》课程教学资源(PPT课件讲稿)第九章 网络攻击.ppt
- 西安电子科技大学:《Mobile Programming》课程PPT教学课件(Android Programming)Lecture 04 Activity, Intent and UI.pptx
- 对外经济贸易大学:《电子商务概论 Electronic Commerce》课程教学资源(PPT课件讲稿)第八章 电子支付与网络银行.pptx
- 《计算机组装与维护》课程教学资源(PPT讲稿)第九章 计算机软件维护.ppt
- 《计算机组装与维护》课程教学资源(PPT课件讲稿)第16章 常见计算机故障解决案例.ppt
- 《单片机原理及接口技术》课程教学资源(PPT课件)第7章 AT89C51单片机系统扩展 7.4 数据存储器的扩展 7.5 I/O口的扩展.ppt
- 香港城市大学:Adaptive Random Test Case Prioritization(PPT讲稿).pptx
- 哈尔滨工业大学:词义消歧(PPT讲稿)Word sense disambiguation.ppt
- 大连工业大学:《数据结构》课程教学资源(PPT课件讲稿,共十章,路莹).pps
- 清华大学出版社:《计算机网络安全与应用技术》课程教学资源(PPT课件讲稿)第6章 黑客原理与防范措施.ppt
- 中国科学技术大学:《信息论与编码技术》课程教学资源(PPT课件讲稿)第2章 离散信源及其信息测度.pptx
- 《数字图像处理》课程教学资源(PPT课件)第七章 图像分割.ppt
- Detecting Evasion Attack at High Speed without Reassembly.ppt
- 南京大学:《面向对象技术 OOT》课程教学资源(PPT课件讲稿)类和对象 Class and Object.ppt
- 《数字图像处理》课程教学资源(PPT课件)第五章 代数运算.ppt
- 《高级语言程序设计》课程教学资源(试卷习题)试题三(无答案).doc
- 东南大学:《操作系统概念 Operating System Concepts》课程教学资源(PPT课件讲稿)08 Main Memory(主讲:张柏礼).ppt