ImageVerifierCode 换一换
格式:PPT , 页数:48 ,大小:982KB ,
资源ID:1205649      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1205649.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构二叉树及遍历PPT.ppt)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构二叉树及遍历PPT.ppt

1、,目标,在本章中,你将学习:在树中存储数据实现二叉树实现二叉搜索树,在树中存储数据,假设你被要求呈现操作系统的目录结构。目录结构含有不同的文件夹和文件。一个文件夹可能含有更多的子文件夹和文件。在这种情况下,要用线型结构来表示这种结构几乎是不可能的,因为所有的项目之间都有层级关系。要表示这样的结构,就需要一种非线型的数据存储机制。,一个树结构就是以非线型结构来表示不同数据元素之间的层级关系的数据结构。,A,B,C,D,I,J,H,K,G,L,M,F,E,定义树结构,树被应用于数据元素之间的关系以层级关系来表示的应用程序中。,每个树结构中的数据元素都被称为一个节点。最顶层的节点被称为根(root)

2、。,root,定义树结构(续),node,A,B,C,D,I,J,H,K,G,L,M,F,E,树中的每一个节点在其层级下可能有子树。,root,定义树结构(续),node,A,B,C,D,I,J,H,K,G,L,M,F,E,树结构术语,叶子节点:指没有子节点的节点。,节点 E,F,G,H,I,J,L,和 M 是叶子节点。,A,B,C,D,I,J,H,K,G,L,M,F,E,让我们来讨论树结构常用的一些术语。,子树:是树结构的一部分,但它本身也可被看作一个树结构,这就是子树。子树也可以含有叶子节点。,子节点:一个树结构中子树的根节点被称为子节点。,树结构术语(续),有根B的树结构包含节点E、F、

3、G和H,此树是节点A的子树。,E,F,G和 H 是B节点的子节点。B是这些节点的父节点。,A,B,C,D,I,J,H,K,G,L,M,F,E,节点的度:它指树结构中一个节点的子树的数量。,树结构术语(续),C节点的度为1D节点的度为2A节点的度为3B节点的度为4,A,B,C,D,I,J,H,K,G,L,M,F,E,边:从父节点到子节点的连接被称为一个边。,Edge,B、C和D节点互为兄弟节点。E、F、G和H互为兄弟节点。,兄弟:它指同一个节点的子节点。,树结构术语(续),A,B,C,D,I,J,H,K,G,L,M,F,E,节点的层级:它指一个节点与根节点之间的距离(按节点数目计算)。根节点永远

4、位于0级。当你将树移至低处,层级增加1。,树结构术语(续),内部节点:它指根节点与叶子节点之间的中间节点。,节点 B,C,D和 K 是内部节点。,Level 0,Level 1,Level 2,Level 3,A,B,C,D,I,J,H,K,G,L,M,F,E,树结构术语(续),树结构的深度:指一个树结构的最大层级。下面的树结构的深度是 4。,Level 0,Level 1,Level 2,Level 3,A,B,C,D,I,J,H,K,G,L,M,F,E,查看下列树结构并回答问题:该树的深度为多少?节点B的子节点是那个?F节点的父节点是那个?E节点的层级为多少?H节点的兄弟节点是那个?D节点

5、的兄弟节点是那个?那些节点是叶子节点?,课间思考,A,B,F,G,C,E,D,H,I,root,课间思考(续),答案:4D 和EC2H 没有兄弟节点D节点的兄弟节点是EF,G,H和 I,定义二叉树,一个二叉树就是每个节点只能最多拥有2个子节点的树结构。这些子节点一般被视为左子节点和右子节点。二叉树有各种类型:严格二叉树二叉树的每一个节点(叶节点除外)都有非空的左子节点和右子节点。满二叉树完整二叉树,满二叉树 深度d的二叉树拥有刚好2d 1个节点。,A,B,C,D,E,F,G,深度=3 节点数=23 1=7,定义二叉树(续),完整二叉树:指有 n 个节点且深度为 d,且其节点对应深度为k 的完整

6、二叉树中序号从0到n 1 的节点。,A,B,C,D,E,F,完整二叉树,A,B,C,D,E,G,不完整二叉树,定义二叉树(续),A,B,C,D,E,F,满二叉树,G,0,1,2,6,5,4,3,0,1,2,3,4,5,0,1,2,3,4,5,表示一个二叉树,二叉树的数组表示:所有节点被表示为数组中的元素。,A,B,C,D,E,F,G,A,B,C,D,E,G,F,0,1,2,3,4,5,6,0,1,2,3,4,5,6,二叉树,数组表示,如果一个二叉树有N个节点,那么对于索引为I的任何节点,其中0 n 1,那么此节点没有左子节点。i 的右子节点位于 2i+2:如果 2i+2 n 1,那么此节点没有

7、右子节点。,二叉树的链接表现形式:使用链接列表来实现一个二叉树。链接表示中的每个节点都具有以下信息:数据对左子节点的引用对右子节点的引用如果一个节点不含有左子节点或右子节点,或一个子节点都没有,相应的左(右)子节点字段就指向NULL。,Data,Node,表示一个二叉树(续),52,68,59,72,24,80,70,36,.,.,.,.,.,.,.,.,52,36,68,24,59,72,70,80,二叉树,链接表示,root,root,表示一个二叉树(续),你可以在叉树上执行各种操作。在二叉树上最常见的操作是遍历。遍历指的是访问树中所有节点一次的过程。遍历二叉树有三种方式:中序遍历(Ino

8、rder traversal)前序遍历(Preorder traversal)后序遍历(Postorder traversal),遍历二叉树,中序遍历一个二叉数所需的步骤如下:1.遍历左子树 2.访问根节点 3.遍历右子树让我们考虑一个示例。,中序遍历,中序遍历(续),A,C,E,B,F,G,D,H,I,root,节点A的左子树不为 NULL。因此,移动到B以遍历A的左子树。节点B的左子树不为NULL。因此,移动到D以遍历B的左子树。,中序遍历(续),节点D的左子树为 NULL。因此,访问节点D。,D,A,C,E,B,F,G,D,H,I,root,中序遍历(续),D的右子树不为NULL。因此,

9、移动到D的右子树。,D,A,C,E,B,F,G,D,H,I,root,中序遍历(续),H的左子树为空。因此,访问节点 H。,D,H,A,C,E,B,F,G,D,H,I,root,中序遍历(续),H的右子树为空。因此,移动到节点 B。,D,H,A,C,E,B,F,G,D,H,I,root,中序遍历(续),已经访问了B的左子树。因此,访问节点 B。,D,H,B,A,C,E,B,F,G,D,H,I,root,中序遍历(续),B的右子树不为空。因此,移动到B的右子树。,D,H,B,A,C,E,B,F,G,D,H,I,root,中序遍历(续),E的左子树为空。因此,访问节点E。,D,H,E,B,A,C,

10、E,B,F,G,D,H,I,root,中序遍历(续),E的右子树为空。因此,移动到节点A。,D,H,E,B,A,C,E,B,F,G,D,H,I,root,中序遍历(续),已经访问过A的左子树。因此,访问节点A.,D,H,E,B,A,A,C,E,B,F,G,D,H,I,root,中序遍历(续),A 的右子树不为空。因此,移动到A的右子树。,D,H,E,B,A,A,C,E,B,F,G,D,H,I,root,中序遍历(续),C的左子树不为空。因此,移动到C的左子树。,D,H,E,B,A,A,C,E,B,F,G,D,H,I,root,中序遍历(续),F的左子树为空。因此,访问节点F。,D,H,E,B,

11、A,F,A,C,E,B,F,G,D,H,I,root,中序遍历(续),F的右子树为空。因此,移动到节点C。,D,H,E,B,A,F,A,C,E,B,F,G,D,H,I,root,中序遍历(续),已经访问过节点C的左子树。因此,访问节点C.,D,H,E,B,A,F,C,A,C,E,B,F,G,D,H,I,root,中序遍历(续),C的右子树不为空。因此,移动到节点C的右子树。,D,H,E,B,A,F,C,A,C,E,B,F,G,D,H,I,root,中序遍历(续),G的左子树不为空。因此,移动到节点G的左子树。,D,H,E,B,A,F,C,A,C,E,B,F,G,D,H,I,root,中序遍历(

12、续),I的左子树为空。因此,访问 I。,D,H,E,B,A,F,C,I,A,C,E,B,F,G,D,H,I,root,中序遍历(续),I的右子树为空。因此,移动到节点G。,D,H,E,B,A,F,C,I,A,C,E,B,F,G,D,H,I,root,中序遍历(续),访问节点 G。,D,H,E,B,A,F,C,I,G,A,C,E,B,F,G,D,H,I,root,中序遍历(续),G的右子树为空。,D,H,E,B,A,F,C,I,G,遍历完成,A,C,E,B,F,G,D,H,I,root,前序遍历,按前序遍历一个二叉树的顺序如下:1.访问根节点 2.遍历左子树 3.遍历右子树,前序遍历(续),A,

13、C,E,B,F,G,D,H,I,对下面的树执行前序遍历。,A,B,D,H,E,C,F,G,I,前序遍历:,后序遍历,在二叉树中进行后序遍历的步骤如下:1.遍历左子树2.遍历右子树3.访问根节点,后序遍历(续),A,C,E,B,F,G,D,H,I,对下面的树执行后序遍历。,H,D,E,B,F,I,G,C,A,后序遍历:,在_遍历方法中,会首先访问根节点,然后再是左右子树。,课间思考,答案:前序,在本节课中,你已经学到:一个树结构就是以非线型数据结构来表示不同数据元素之间的层级关系。一个二叉树就是一个特定类型的树,其中的每个节点最多只能有2个子节点。二叉树可以使用数组来实施,也可以使用链接列表,取决于需求。树的遍历操作就是访问树中所有节点一遍。有三种类型的遍历,中序、前序和后序遍历。,小结,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1