构建平衡二叉树的例题,二叉平衡树的特点

http://www.itjxue.com  2023-01-04 15:41  来源:未知  点击次数: 

2010年计算机专业统考的一题关于平衡二叉树

插入48之后属于右左双旋转的情况,按照图示的方法先做右单旋转,再做左单旋转

右单旋转:以37为轴,53顺时针旋转(向下),原本是37左孩子的48成为53的左孩子

24的右孩子由53变为37

左单旋转:仍然以37为轴,24逆时针旋转(向下),成为37的左孩子

(如有误敬请指正)

序列构造平衡二叉树,给出构造过程

首先插入49,为根

接着38,插入在49的左子树,没有旋转

接着65,插入在49的右子树,没有旋转

然后97,插入在65的右子树,没有旋转

下面76,插入在97的左子树,做先右后左的双旋转:

后面的13,插入在38的左子树,没有旋转

接着的27,插入在13的右子树,做先左后右的双旋转:

最后再插入50在65的左子树,没有旋转,得到最终的平衡二叉树如下:

数据结构,,平衡二叉树题,大家看看我做的对不对

对,完全正确,从插入的48往根回溯,到30就不平衡了,因此要进行向左的单旋转

数据结构,第六题第2小题怎样构造平衡二叉树(出现相同关键字了)

这个问题,如果参考教材有规定就好处理。大多数教材,对二叉排序树来讲,是不可以有相同的关键字的。如果没有规定,可以这样去考虑,在插入第二个77时,不插入因为已存在77.这样就好处理了。对于第二问,同样平衡二叉树首先必须是二叉排序树。结果为:

67

/ \

27 87

/ \ / \

17 47 77 97

/ / \

07 37 57

【讨论】数据结构平衡二叉树题求解?

平衡二叉树,属于二叉排序树(左子树所有节点均小于它根节点的值,而右子树相反),所以构造树的时候按照二叉排序树,不断插入,就会发现插入51时,出现不平衡。

构造平衡二叉树

从结点48向根回溯,依次计算各个结点的平衡因子,48的为0,37为-1(左减去右),53为+1,24为-2,产生不平衡,从24往来路看2个结点:53、37,路径形态为先向右走再向左走,于是24、53和37进行先右后左双旋转:

第一步:将37、53向右旋转,37上,53变为37的右子树,48交给53成为53的左子树

第二步:将24、37向左旋转,37上,24变成37的左子树(如果37原来有左子树,就交给24变成其右子树,不过现在没有)

最终结果:

(责任编辑:IT教学网)

更多

推荐数据库文章