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

数据结构课件:二叉树的存储与基本操作.pptx

数据结构课件:二叉树的存储与基本操作.pptx

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

二叉树的

存储与基本操作

本讲要点二叉树的存储二叉树的基本操作问题如何表示(抽象)逻辑结构如何存储?物理结构如何操作?操作算法

1.二叉树的存储二叉树的顺序存储结构用一维数组存储二叉树中的结点,并且结点的存储位置(下标)应能体现结点之间的逻辑关系——父子关系。如何利用数组下标来反映结点之间的逻辑关系?二叉树的性质5为二叉树的顺序存储指明了存储规则:依照完全二叉树的结点编号次序,依次存放各个结点。完全二叉树和满二叉树中结点的序号可以唯一地反映出结点之间的逻辑关系。注意:C/C++中数组的起始地址为0,编号为i的结点存储在下标为i的单元内。

1.二叉树的存储二叉树的顺序存储结构对于一般二叉树而言,如何利用完全二叉树的编码规则来存储数据呢?ABCDEGFABC∧DE∧∧∧F∧∧G数组下标12345678910111213以编号为下标ABCDEGF123561013按照完全二叉树编号

1.二叉树的存储二叉树的顺序存储结构优点?对于满二叉树、完全二叉树来说,顺序存储结构的存储效率极高。所有的空间仅仅用来存储数据元素的值,结点之间关系的存储未占用任何空间。可以直接存取二叉树中的任意结点的数据信息,且双亲与孩子关系计算也非常简单。由于每个数据元素的存储位置暗藏彼此之间的关系,可以根据结点的编号,直接计算出它的父结点、左/右孩子结点的位置。

1.二叉树的存储二叉树的顺序存储结构缺点?一棵斜树的顺序存储会怎样呢?高度为k的右斜树,k个结点需分配2k-1个存储单元。一棵二叉树改造后成完全二叉树形态,需增加很多空结点,造成存储空间的浪费。二叉树的顺序存储结构一般仅存储完全二叉树ABC137D15

1.二叉树的存储二叉树的链式存储结构基本思想:令二叉树的每个结点对应一个链表结点,链表结点除了存放与二叉树结点有关的数据信息外,还要设置指示左右孩子的指针。

1.二叉树的存储二叉树的链式存储结构结点结构:lchilddatarchild其中,data:数据域,存放该结点的数据信息;lchild:左指针域,存放指向左孩子的指针;rchild:右指针域,存放指向右孩子的指针。

1.二叉树的存储二叉树的链式存储结构具有n个结点的二叉链表中,有多少个空指针?

2.二叉树的基本操作二叉树的遍历二叉树的建立二叉树的销毁

2.二叉树的基本操作(1)二叉树的遍历从根结点出发,按照某种次序访问二叉树中的所有结点,使得每个结点被访问一次且仅被访问一次。如果限定先左后右,则遍历方式有三种:先序:DLR中序:LDR后序:LRD层序遍历:按二叉树的层序编号的次序访问各结点。考虑二叉树的组成:根结点D左子树L右子树R二叉树什么次序?二叉树遍历操作的结果非线性结构线性化

2.二叉树的基本操作(1)二叉树的遍历从根结点出发,按照某种次序访问二叉树中的所有结点,使得每个结点被访问一次且仅被访问一次。抽象操作,可以是对结点进行的各种处理,这里简化为输出结点的数据。访问是什么意思?

2.二叉树的基本操作(1)二叉树的遍历先序遍历①若二叉树为空,则空操作返回。(否则)②访问根结点。③先序遍历根结点的左子树。④先序遍历根结点的右子树。先序遍历序列:ABDGCEFABCDEFG

2.二叉树的基本操作(1)二叉树的遍历中序遍历①若二叉树为空,则空操作返回。(否则)②中序遍历根结点的左子树。③访问根结点。④中序遍历根结点的右子树。ABCDEFG中序遍历序列:DGBAECF

2.二叉树的基本操作(1)二叉树的遍历后序遍历①若二叉树为空,则空操作返回。(否则)②后序遍历根结点的左子树。③后序遍历根结点的右子树。④访问根结点。ABCDEFG后序遍历序列:GDBEFCA

练一练--/+*abcdef二叉树遍历操作练习先序遍历结果:中序遍历结果:后序遍历结果:-+a*b-cd/efa+b*c-d-e/fabcd-*+ef/-

2.二叉树的基本操作(1)二叉树的遍历层次遍历从二叉树的第一层(即根结点)开始,从上至下逐层遍历,在同一层中,则按从左到右的顺序对结点逐个访问。ABCDEFG层次遍历序列:ABCDEFG

2.二叉树的基本操作(2)二叉树的建立能不能根据输入的线性序列唯一确定一棵二叉树?例如,输入先序序列abc解决?在输出遍历序列时,忽略了空结点,从而导致无法确定在遍历序列中的后继结点是左孩子还是右孩子。如果将“若二叉树为空,则遍历结束

文档评论(0)

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

中医资格证持证人

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

领域认证该用户于2023年05月10日上传了中医资格证

1亿VIP精品文档

相关文档