第10章-非线性结构.ppt

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

*第10章非线性结构本章内容(树形结构)?树的基本概念?二叉树的基本概念和性质?二叉树的存储结构?二叉树的遍历?C++中的二叉树类?树、森林与二叉树的转换?哈夫曼树树的逻辑结构树是n(n0)个数据元素的有限集合T,并满足以下两个条件: ①有且仅有一个特定的称为根的元素; ②其余元素分为m(m≥0)个互不相交的有限集合T1、T2、……、Tm,其中每个集合又都是一棵树。此时,称T1、T2、….为根的子树。树的常用术语双亲、子女、边:若结点y是结点x的一棵子树的根,则x称做y的“双亲”;y称做x的“子女”;有序对〈x,y〉称做从x到y的“边”。例如:?C是G的双亲,G是C的子女,〈C,G〉是从C到G的边。兄弟:具有同一双亲的结点。例如:B、C、D互为兄弟,而F和G不是兄弟。路径、路径长度:若树中存在着一个结点的序列k1k2……kj,使ki是ki+1(1≤i<j)的双亲,则称该结点序列为从k1到kj的一条路径;路径长度 等于j-1,它是该路径所经过的边的数目。例如:ADIN是从结点A到结点N的一条路径,其长度为3。结点的层数:根结点层数为0,其余结点层数等于其双亲结点层数加1。例如:层数为0的结点有A,层数为1的结点有B、C、D。树的深度(高度):即树中层数最大的结点的层数。例如:?树的深度为3。结点的度数:一个结点子女的个数。例如:A、C、E、J的度数分别为3、1、2、0;树的度数:树中度数最大的结点的度数。例如:树的度数为3。树叶:度数为0的结点叫做“树叶”。分支结点:度数大于0的结点叫做“分支结点”或“内结点”。例如:?K、L、F、M、H、N、J都是树叶,其余结点都是分支结点。森林森林:m(m≥0)棵互不相交的树的集合称为森林。二叉树的基本概念 二叉树是n(n≥0)个结点的有限集合。它或者是空集(n=0),或者由一个根结点及两棵互不相交的、分别称为这个根的左子树和右子树的二叉树组成。1.二叉树的定义Φ2.二叉树的五种基本形态二叉树可以是空,而树不能为空。二叉树的子树有左、右之分,树的子树是相同的。二叉树中任意结点的度数不超过2,而树无此限制。3.树和二叉树的差别二叉树的性质性质1二叉树第i层上的结点数目最多为2i(i≥0)。性质2深度为k的二叉树至多有2k+1-1个结点(k≥0)。性质3在任意一棵二叉树中,若终端结点(叶子结点)的个数为n0、度数为2的结点的个数为n2,则n0=n2+1。1.二叉树的性质2.两种特殊的二叉树满二叉树完全二叉树完全二叉树的性质性质4具有n个结点的完全二叉树的深度为log2n性质5若对一棵有n个结点的完全二叉树,按自顶向下、同层由左到右顺序依次为其每个结点从0开始编号,则对编号为i的结点ki(0≤i≤n-1)则有: ①若i0,则ki双亲结点的编号为(i-1)/2 ②若i=0,则ki是根结点。 ③若2i+1n,则ki左子女结点的编号是2i+1,否则ki无左子女。 ④若2i+2n,则ki右子女结点的编号为2i+2,否则ki无右子女。二叉树的存储结构对完全二叉树,按编号顺序依次存储在一维数组里。对一般二叉树,加上“虚结点”,按完全二叉树的形式存储。1.顺序存储结构完全二叉树一般的二叉树二叉树的存储结构2.链式存储结构结点的结构树的结构二叉树的遍历先序遍历若二叉树非空,则访问根结点,先序遍历左子树,先序遍历右子树。中序遍历若二叉树非空,则中序遍历左子树,访问根结点,中序遍历右子树。后序遍历若二叉树非空,则后序遍历左子树,后序遍历右子树,访问根结点。层次遍历按层数由小到大、同一层从左到右顺序依次访问二叉树的各个结点先序访问序列:中序访问序列:后序访问序列:层次访问序列:ABDGECFDGBEAFCGDEBFCAABCDEFG讨论:如何根据遍历序列得到一颗二叉树由先序遍历和中序遍历序列,可以得出该二叉树的形态由后序遍历和中序遍历序列,可以得出该二叉树的形态由层序遍历和中序遍历序列,可以得出该二叉树的形态其他情况下,不能得出该二叉树的形态先序访问序列:中序访问序列:ABDGECFDGBEAFC例:树、森林与二叉树的转换1)将树转换成二叉树:①在所有的兄弟之间加一条连线;②对每个结点,除了保留与最左边子女的连线外,去掉与其他子女连线;③将保留下来的

文档评论(0)

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

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

1亿VIP精品文档

相关文档