老师你好, 这里 y 的 right子树 都不一定为空把。这里不是很明白

来源:12-5 左旋转和右旋转的实现

小白程序员i

2018-09-04

写回答

1回答

liuyubobobo

2018-09-04

抱歉,你具体说的是哪里的y的右子树?在问答区我无法定位你具体看到了视频的哪里。。。:(


======


抱歉,我觉得我还是不很理解你的问题。以课程12-5小节的官方代码为例:https://github.com/liuyubobobo/Play-with-Data-Structures/blob/master/12-AVL-Tree/05-The-Implementation-of-Left-Rotation-and-Right-Rotation/src/AVLTree.java 


对于右旋转的过程,y.right 可能为空,也可能不为空。

但是对于左旋转过程,y的右侧一定不为空,也就是y的右侧一定有一个x,这个x在左旋转后,要作为旋转后新的根节点。


我们在这一小节实现的代码,对这一点,没有进行判断,这是因为我们在这一小节实现的左右旋转,都是我们自己建立的私有的函数函数,为后续介绍的添加和删除操作提供帮助。在具体添加和删除的过程中,我们会进行判断,在正确的时机调用他们:)


加油!:)

0
2
liuyubobobo
回复
小白程序员i
我在原回答上进行了补充,看看是不是你想问的问题?加油!:)
2018-09-05
共2条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程