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

《小白学数据结构》课件——第五章 树.pptxVIP

《小白学数据结构》课件——第五章 树.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

主讲教师:

1.树与二叉树

什么是树呢?

树树的定义树(Tree)是n(n≥0)个结点的有限集,它或为空树(n=0);或为非空树,对于非空树T:(1)有且仅有一个称之为根结点;(2)除根结点以外的其余结点可分为m(m>0)个互不相交的有限集T1,T2,...,Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。

树树的基本术语(1)结点的度(2)树的度(4)分支结点(3)叶子结点树中结点拥有子树的数量称为结点的度树中所有结点度的最大值称为树的度树中度为零的结点称为叶子结点树中度不为零的结点称为分支结点

ABCDEFGH4B02D01FGHB、D、F、G、H五个结点——叶子结点ACEA、C、E三个结点——分支结点

二叉树二叉树的五种基本形态(a)——空二叉树(b)——仅有根结点的二叉树(c)——右子树为空的二叉树(d)——左子树为空的二叉树(e)——左右子树非空的二叉树

二叉树的两个基本特点(1)结点的度小于等于2(2)二叉树是有序树,左右子树不能颠倒

树与二叉树ABCDEGHF二叉树ABCDEFGH树一般的树可以有多个子结点,而二叉树每一个结点最多有两个子结点。二叉树的结点是有顺序的,分为左子树和右子树,一般的树中结点的顺序是无关的。

(1)满二叉树?

满二叉树第一层第二层第三层第四层137152456891011121314

(2)完全二叉树定义:一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。

深度——4结点——12个完全二叉树

满二叉树和完全二叉树有什么区别?

满二叉树和完全二叉树满二叉树是完全二叉树的一种特例,所以满二叉树也是完全二叉树,但完全二叉树不一定都是满二叉树。123456789101112131415123456789101112满二叉树/完全二叉树完全二叉树

2.二叉树的性质和存储结构

二叉树的性质性质1:在二叉树的第i层上至多有2i-1个结点第一层第二层第三层第四层24835679101112131415

二叉树的性质性质2:深度为k的二叉树至多有2k-1个结点深度42k-1=24-1=16-1=15至多有15个结点

二叉树的性质性质3:对于任何一棵二叉树,若度为2的结点数有n2个,则叶子数n0必定为n2+1(即n0=n2+1)

二叉树的存储结构顺序存储链式存储

二叉树的存储结构(1)顺序存储顺序存储是用一组地址连续的存储单元,以层次的顺序存放二叉树的数据元素,结点的相对位置蕴含了结点之间的关系。

二叉树的存储结构(2)链式存储顺序存储的存储效率不高有大量的空间浪费很多存储单元并没有存储数据链式存储

二叉树的存储结构(2)链式存储二叉树的链式存储至少包含三个域:①数据域②左指针域(左孩子域)③右指针域(右孩子域)数据域左指针域右指针域

3.二叉树的遍历

二叉树的遍历指从根结点出发,顺着某一条搜索路径访问二叉树中的结点,使得每个结点的均被访问一次,而且仅被访问一次。

二叉树的遍历先序遍历后序遍历中序遍历层序遍历

二叉树的遍历①先序遍历如果二叉树为空,那么我们就不访问,否则我们访问根结点然后我们先序遍历左子树。左子树遍历完后,我们再去先序遍历右子树,按照根左右的顺序。这颗二叉树的先序遍历的序列是:A-B-C-D-E-F-G-H

二叉树的遍历②后序遍历后序遍历按照左右根的顺序。先递归后序遍历的左子树,然后再访问它的右子树,最后访问根结点。这颗二叉树的后序遍历的序列是:D-E-C-B-H-G-F-A

二叉树的遍历③中序遍历中序遍历算法按照左根右的顺序这颗二叉树的中序遍历的序列是:B-D-C-E-A-F-H-G

二叉树的遍历④层序遍历按层从上到下,每层按一定顺序对树的结点进行遍历,一般情况下,每一层按照自左至右的顺序访问。这颗二叉树的层序遍历的序列是:A-B-F-C-G-D-E-H

4.树、森林与二叉树的转换

一棵树:无最大子结点数量限制二叉树:最大子结点数量为2树与二叉树结构的不同

树与二叉树的转换方法使用链表存储所有树的结点,然后在链表中进行组织层序遍历对树中的每个结点进行递归,逐步转换为二叉树递归

树与二叉树的转换方法特定结构转换的目的CAB

树与二叉树的转换方法CDEFGHIAB加线操作:连接树中所有相邻兄弟去线操作:删除其他多余连线旋转操作:将整棵树顺时针旋转45°一棵树转换为二叉树

树与二叉树的转换方法CDEFGHIAB一棵树转换为二叉树加线操作:连接树中所有相邻兄弟去线操作:删除其他多余连线旋转操作:将整棵树顺时针旋转45°

森林与二叉树的转换

森林与二叉树的转换将树中的每棵树

您可能关注的文档

文档评论(0)

青柠职教 + 关注
实名认证
服务提供商

从业10年,专注职业教育专业建设,实训室建设等。

1亿VIP精品文档

相关文档