- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * 本页介绍二叉树的基本性质,单击鼠标左键出现二叉树的两个基本性质:性质一反映二叉树的第 i 层上所至少拥有的结点的个数为2 i-1;性质二反映二叉树所最多拥有的结点的个数为2i-1。单击鼠标左键出现性质二的推导过程,二叉树最多的结点数等于各层所拥有的最多的结点数之和。 由以上性质可以引出满二叉树和完全二叉树的概念。单击鼠标左键出现满二叉树的定义和其特点。判定一棵二叉树是否为满二叉树的方法有两个:其一利用满二叉树的定义;其二利用满二叉树的特点来判定。 单击鼠标左键出现一棵二叉树,请判断其是否为满二叉树: 1,2不是;3是。 * 单击鼠标左键出现完全二叉树的定义和特点。它们分别从两个方面对二叉树的做了描述。 单击鼠标左键出现一棵已经编号的满二叉树,继续单击出现二叉树请判断是否为完全二叉树,1、3不是,2、4是。 要能利用二叉树的定义或特点来判定某一棵二叉树是否为一棵完全二叉树。 * 在满二叉树和完全二叉树中,有如下的特性???指明了其中任意一个结点 i (结点的编号),只要其父结点、左子结点和右子结点存在的话,其编号分别为 int (i /2) 、2i 、2i+1。 单击鼠标左键出现一棵结点数n=15 达到满二叉树,它当然也满足完全二叉树的这一个特征,可列举其中的D、E、C等结点按起编号去找寻其父结点或各子结点。 单击鼠标左键出现相应结点的位置编号示意图。 可以看出完全二叉树在数据元素之间的逻辑关系和其结点的位置编号相关,二叉树的顺序存储结构就是利用了完全二叉树的这一个特征来对树中各元素进行存放的。 * 这里我们讨论完全二叉树的顺序存储结构:同样它也是采用一组地址连续的存储单元存放来存放完全二叉树中的各个元素,而利用完全二叉树中各元素的位置特征去找寻一种物理位置和逻辑关系的联系。 单击鼠标左键出现完全二叉树的示意图,单击作家出现其顺序存储结构的示意图,注意:序号(各元素的位置编号)与各元素对应的数组下标的关系。 在存储结构示意图中,对于序号为5的结点E: 父结点的序号: i = int(5/2) = 2 = B结点; 左子结点序号: i = 2?5 =10 = J 结点; 右子结点序号: i = 2?5+1 =11= K 结点。 若以数组元素的下标来表示序号5的结点,则: 对于: BT[5-1]=BT[4]=E结点; 父结点为:BT [ 5/2-1 ] = BT [1] = B 结点; 左子结点:BT[ 2?5+1 ]= BT[9] = J结点; 右子结点:BT[2?5+1 -1]=BT[10]=K结点。 单击鼠标左键,可见完全二叉树可以用顺序存储结构来存放。 * 了解了完全二叉树的顺序存储结构之后,我们要考虑如何进行一般二叉树的存储。实际上,一棵一般意义上的二叉树,可以添加一些空结点使之变成一棵完全二叉树。 单击左键出现一棵二叉树,继续单击可出现经过添加空结点得到的完全二叉树,单击左键出现该完全二叉树的存储结构示意图。看来我们已经找到了二叉树顺序存储的方法,但这样进行存储可能带来内存空间的浪费,极限的情况就是一个深度为,且只有个结点的单支树。 为解决这样的问题就必须寻找其他的存储方式。 * 本页举例介绍二叉树的中序遍历算法,中序遍历的次序:先访问左子树,再访问根结点,再右子树。单击左键出现一棵待遍历的二叉树。 继续单击鼠标左键依次出现二叉树的中序遍历序列的遍历过程。 从遍历的过程来看,中序遍历和先序遍历在执行的过程上是完全一样的,区别仅仅在于访问结点的次序发生了变化。对同样一棵二叉树得到的中序遍历的序列为CBEDFA。 * 树的三种不同的遍历算法可以得到不同的遍历序列,反之若已知树的中序遍历序列和另一种遍历序列就可以重构二叉树。 首先介绍由遍历序列构造二叉树的基本思路。 1、先序遍历序列中第一个结点一定是该二叉树的根结点。 2、中序遍历序列中根结点左边的序列一定是根结点的左子树,同理根结点左边的序列一定是根结点的右子树。 3、再利用递归的方法依次处理根结点的左子树和右子树。就可以得到由该先序遍历序列和中序遍
原创力文档


文档评论(0)