我一直试图围绕如何编写用于旋转二叉树的代码。我查看了http://en.wikipedia.org/wiki/Tree_rotation和enfuzzled.com 我一直盯着这看了2个小时,并且多次提前看过它。我仍然在维基百科文章中看到问题,并且完全无法理解另一个问题。
维基百科文章中提到的这两行都不能立即生效
让P成为Q的左子。 将P设置为新根。有人可以帮忙吗?谢谢
答案 0 :(得分:6)
根据您对该问题的评论,您正在寻找旋转算法的指导。这是一本优秀的书http://www.amazon.com/Introduction-Algorithms-Third-Thomas-Cormen/dp/0262033844中的LEFT-ROTATE算法。
答案 1 :(得分:2)
“让P为Q的左子。将P设为新根。”基本上这是向右或顺时针旋转的描述:
Q P
/ => \
P Q