二分判定树的画法 |
您所在的位置:网站首页 › 关键字二叉排序树怎么构造 › 二分判定树的画法 |
以下给出我在学习中总结的一种比较简便的构造折半二叉判定树的思路以及方法: 思路分析: 在计算mid值时,使用的时mid=(low+high)/2 。这里由于mid为int类型,自动默认为向下取整,因此对于一个长度为n序列进行划分之后的序列为 (0,1,2,……,mid-1)mid(mid+1,mid+2,……n-1),此时出现两种情况: 左子序列长==右子序列长 (n=2k+1 k=0,1,2,……) 左子序列长==右子序列长-1 (n=2k k=1,2,3,……) 因此可以得知,折半查找的二叉判定树对于所有结点,左子树结点个数2^3-1 即二叉判定树为4层,前三层为满二叉树结构,剩余4个结点。 先画出前三层结构。 2. 1)第一个结点。a的左右子树结点个数相等,所以新的结点应加入a的右子树;再看a的右子树,c的左右子树结点个数相等,所以新结点应加入c的右子树;再看c的右子树,g的左右子树结点个数相等,所以新结点应加入g的右子树;如图 2)第二个结点。a的左子树结点数-右子树结点数=-1,所以新结点应加入a的左子树(若加入右子树,对于a来说左右子树结点之差=-2,不符合规律);再看a的左子树,b的左右子树结点个数相等,所以新结点应加入b的右子树;再看b的右子树,e的左右子树结点个数相等,所以新结点应加入e的右子树。如图 3)同理分析,第三个结点应加在如图位置。 4)第四个结点加在如图位置。 得到最终的树形如上图。(字母编号不唯一,但后面中序遍历结果会不同) 3.该二叉树的中序遍历顺序为dkbeiafjcgh,分别对应2,5,7,10,14,15,18,23,35,41,52。因此将序列一一对应填入树中,即 该树即为此序列的二叉判定树。 做题过程中熟练使用此方法比通过算法模拟来推断二叉判定树的速度要快许多倍。 在平时做题过程中,涉及到需要具体画出二叉判定树的题目,往往结点个数(序列长度)不超过2^4-1=15个,即一般为高度不超过4的树,因此可以在练习时将结点个数8-14的所有树形画几遍,就可以很熟练的掌握这个方法。 二叉判定树画出之后便可以对其他具体题目进行分别的计算,如求成功或失败的查找长度、求比较顺序、比较次数等。 ———————————————— 版权声明:本文为CSDN博主「Vee_99」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/BlevMeM/article/details/84672731 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |