我已经完成了手工请求的树(bst> avl)的平衡,我想这很简单,所以我不确定我是否已经正确完成了。
a / \ b e3 / \ e1 e2
初始状态是: 'a'是'b'(左)和'e3'(右)的父级,'b'是'e1'(左)和'e2'(右)的父级。
应用右旋转给我们:
b / \ e1 a / \ e2 e3
'b'代替'a',左边是孩子'e1',右边是'a'孩子,'a'左边是'b''e2'。
所以问题:
例11; 12; 16
16 / 13 / 10
初始状态:16是13的父级,13是10的父级。 我可以做到这一点:13是10(左)和16(右)的父母
我知道这很简单,但理论通常不会涵盖这些事情,假设它很明确,不适合所有人。 谢谢你的帮助,
答案 0 :(得分:0)
对所有事情都是的,真的。想想订单属性:左后卫<节点和节点<正确的后代。注意旋转如何保留这个;在旋转之前将a和b与e1,e2和e3进行比较,并在旋转之后检查顺序和后代关系。在放弃它之前,我会让你思考一下。