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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构与算法教学课件ppt作者王曙燕chapter6树和二叉树PPT课件下载推荐.ppt

1、,若D为空集,则称为空树。否则:(1)在D中存在唯一的称为根的数据元素root;(2)当n1时,其余结点可分为m(m0)个互 不相交的有限集T1,T2,Tm,其中每一 个子集本身又是一棵符合本定义的树,称为根root的子树。,第 6 章 树和二叉树,数据对象 D:,D是具有相同特性的数据元素的集合。,5,例如:,第 6 章 树和二叉树,A(B(E,F(K,L),C(G),D(H,I,J(M),T1,T3,T2,根,6.2 树的概念,6,表示方法:,第 6 章 树和二叉树,树型表示,6.2 树的概念,7,表示方法:,第 6 章 树和二叉树,文氏图表示,6.2 树的概念,8,表示方法:,第 6 章

2、 树和二叉树,凹入表示,6.2 树的概念,9,表示方法:,第 6 章 树和二叉树,嵌套括号表示,a(b(d,e(i,j),c(g,h),6.2 树的概念,10,有向树:,第 6 章 树和二叉树,有确定的根;树根和子树根之间为有向关系。,有序树:,子树之间存在确定的次序关系。,无序树:,子树之间不存在确定的次序关系。,6.2 树的概念,11,树型结构和线性结构的结构特点,第 6 章 树和二叉树,第一个数据元素(无前驱),根结点(无前驱),最后一个元素(无后继)。,多个叶子结点(无后继),其它数据元素(一个前驱、一个后继),其它数据元素(一个前驱、多个后继),6.2 树的概念,12,第 6 章 树

3、和二叉树,基本术语,结点:,数据元素+若干指向子树的分支,结点的度:,分支的个数,树的度:,树中所有结点的度的最大值,叶子结点:,度为零的结点,分支结点:,度大于零的结点,(从根到结点的)路径:,由从根到该结点所经分支和结点构成。,6.2 树的概念,13,数 据 结 构,第 6 章 树和二叉树,基本术语,孩子结点:,一个结点的直接后继,双亲结点:,一个结点的直接前驱,兄弟结点:,同一双亲结点的孩子结点之间互称。,堂兄弟、祖先结点、子孙结点,结点的层次:,假设根结点的层次为1,依次累加。,树的深度:,树中叶子结点所在的最大层次,森林:,是m(m0)棵互不相交的树的集合,6.2 树的概念,14,第

4、 6 章 树和二叉树,基本操作,InitTree(Tree);DestoryTree(Tree);CreatTree(Tree);TreeEmpty(Tree);Root(Tree);Parent(Tree,x);FirstChild(Tree,x);NextSibling(Tree,x);InsertChild(Tree,p,Child);DeleteChild(Tree,p,i);,6.2 树的概念,15,第 6 章 树和二叉树,定义:,满足以上两个条件的树型结构为二叉树。,每个结点的度都不大于2;,每个结点的孩子结点次序不能任意颠倒。,二叉树或为空树,或是由一个根结点加上两棵分别称为左子

5、树和右子树的、互不相交的二叉树组成。,A,根结点,左子树,右子树,6.2 树的概念,16,6.3 二叉树,第 6 章 树和二叉树,形态:,5种,17,6.3 二叉树,第 6 章 树和二叉树,基本操作:,Initiate(bt);Destory(bt);Creat(bt);Empty(bt);Root(bt);Parent(bt,x);LeftChild(bt,x);RithtChild(bt,x);Traverse(bt);Clear(bt);,18,6.3 二叉树,第 6 章 树和二叉树,重要性质:,在二叉树的第 i 层上至多有2i-1 个结点。,用归纳法证明:,.当i=1 层时,只有一个根

6、结点:2i-1=20=1;,.假设i=k时成立,即第k层上至多有2k-1个结点;,.那么第k+1层上最多有2k-12个,即2k个。,结论成立,证毕。,19,6.3 二叉树,第 6 章 树和二叉树,重要性质:,深度为 k 的二叉树上至多含 2k-1 个结点(k1)。,证明:,基于上一条性质,深度为 k 的二叉树上的结点数至多为,20+21+2k-1,=2k-1,20,6.3 二叉树,第 6 章 树和二叉树,重要性质:,对任何一棵二叉树,若它含有n0 个叶子结点、n2 个度为 2 的结点,则必存在关系式:n0=n2+1。,设二叉树上结点总数 n=n0+n1+n2,又二叉树上分支总数 b=n1+2n

7、2,而 b=n-1=n0+n1+n2-1,由此,n0=n2+1,21,6.3 二叉树,第 6 章 树和二叉树,特殊的二叉树,满二叉树,完全二叉树,深度为k且含有2k-1个结点的二叉树。,树中所含的 n 个结点和满二叉树中编号为 1 至 n 的结点一一对应。,关系:,满二叉树必为完全二叉树,而完全二叉树不一定是满二叉树。,22,6.3 二叉树,第 6 章 树和二叉树,重要性质:,具有 n 个结点的完全二叉树的深度为 log2n+1。,设完全二叉树的深度为 k,则根据第二条性质得 2k-1-1 n 2k-1,则 2k-1 n 2k,即 k-1 log2n k,因为 k 只能是整数,因此,k=log

8、2n+1。,23,6.3 二叉树,第 6 章 树和二叉树,重要性质:,若对含 n 个结点的完全二叉树从上到下且从左至右进行 1 至 n 的编号,则对完全二叉树中任意一个编号为 i 的结点:,(1)若 i=1,则该结点是二叉树的根,无双亲,否则,编号为 i/2 的结点为其双亲结点;,(2)若 2in,则该结点无左孩子,否则,编号为 2i 的结点为其左孩子结点;,(3)若 2i+1n,则该结点无右孩子结点,否则,编号为2i+1 的结点为其右孩子结点。,24,6.3 二叉树,第 6 章 树和二叉树,存储结构:,顺序存储结构,链式存储结构,25,6.3 二叉树,第 6 章 树和二叉树,存储结构:,顺序

9、存储结构,是用一组连续的存储单元来存放二叉树的数据元素。,一维数组btn,数 据 结 构 与 算 法,26,root,6.3 二叉树,第 6 章 树和二叉树,存储结构:,链式存储结构:,二叉链表,结点结构:,typedef struct Node DataType data;struct Node*lchild;struct Node*rchild;BiTNode,*BiTree;,含有n个结点的二叉链表中有2n个指针域,n+1个空域。,27,6.3 二叉树,第 6 章 树和二叉树,存储结构:,三叉链表,结点结构:,root,28,6.4 二叉树的遍历,第 6 章 树和二叉树,遍历二叉树:,顺

10、着某一条搜索路径访问二叉树中的结点,使得每个结点均被访问一次,而且仅被访问一次。,“遍历”是任何类型均有的操作,对线性结构而言,只有一条搜索路径(因为每个结点均只有一个后继),故不需要另加讨论。,二叉树是非线性结构,每个结点有两个后继,存在如何遍历即按什么样的搜索路径遍历的问题,29,第 6 章 树和二叉树,“二叉树”由三个基本单元组成:根结点、左子树和右子树。若能依次遍历这三部分,就遍历了整个二叉树。,DLR,DRL,LDR,RDL,LRD,RLD,先左后右,先右后左,设用L、D、R分别表示遍历左子树、访问根结点、遍历右子树,对“二叉树”而言,可以有?种搜索路径:,6,6.4 二叉树的遍历,

11、30,第 6 章 树和二叉树,先(根)序遍历的递归定义:,若二叉树为空树,则空操作;否则,(1)访问根结点;(2)先序遍历左子树;(3)先序遍历右子树。,A,B,D,G,C,E,F,先序遍历结果:,A,B,D,G,C,E,F,void PreOrder(BiTree root)if(root!=NULL)Visit(root-data);PreOrder(root-LChild);PreOrder(root-RChild);,6.4 二叉树的遍历,31,第 6 章 树和二叉树,中(根)序遍历的递归定义:否则,(1)中序遍历左子树;(2)访问根结点;(3)中序遍历右子树。,A,B,D,G,C,E

12、,F,中序遍历结果:,A,B,D,G,C,E,F,void InOrder(BiTree root)if(root!=NULL)InOrder(root-LChild);Visit(root-data);InOrder(root-RChild);,6.4 二叉树的遍历,32,6.3 二叉树的遍历与线索化,第 6 章 树和二叉树,后(根)序遍历的递归定义:否则,(1)后序遍历左子树;(2)后序遍历右子树;(3)访问根结点。,A,B,D,G,C,E,F,后序遍历结果:,A,B,D,G,C,E,F,void PostOrder(BiTree root)if(root!=NULL)PostOrder(

13、root-LChild);PostOrder(root-RChild);,33,第 6 章 树和二叉树,练习,先序:ABDEHICFJGK,中序:DBEHIAFJCGK,后序:DIHEBJFKGCA,6.4 二叉树的遍历,34,第 6 章 树和二叉树,举例:,先序:,-,+,a,*,b,-,c,d,/,e,f,中序:,a,+,b,*,c,-,d,-,e,/,f,后序:,a,b,c,d,-,*,+,e,f,/,-,前缀式(波兰式),中缀式(表达式),后缀式(逆波兰式),6.4 二叉树的遍历,35,第 6 章 树和二叉树,由遍历序列确定二叉树,由先序和中序序列恢复二叉树举例,先序序列:A B C

14、D E F G,中序序列:C B D A E G F,A,A,左子树,右子树,A,B,B,B,C,C,C,D,D,D,E,E,E,F,F,F,G,G,G,6.4 二叉树的遍历,36,6.3 二叉树的遍历与线索化,第 6 章 树和二叉树,由遍历序列确定二叉树,由中序和后序序列恢复二叉树,中序序列:D C B G E A H F I J K,后序序列:D C E G B F H K J I A,A,练习:,I,J,K,H,F,B,G,E,C,D,37,第 6 章 树和二叉树,遍历算法应用:,遍历算法将走遍二叉树中的每一个结点,故输出二叉树中结点并无次序要求,因此可用任一种算法来完成。,void PreOrder(BiTree root)if(root!=NULL)printf(root-data);PreOrder(root-RChild)

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

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