伸展树的展开的理解
中的splay(Comparable key)
方法,第198行:
l.right = t; /* link left */
l = t;
t = t.right;
不能理解l=t;
前面的l.right = t
不就是被覆盖掉了吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这里只是l和t这两个引用在移动:
假设l原来指向节点a,a的左节点和右节点分别是a1和a2。t原来指向节点b,b的左节点和右节点分别是b1和b2
l.right = t
,l是指向a的,这个操作也就是a的右节点变成了b,l依然指向a,t依然指向bl = t
,l改成指向b,t没变也指向bt = t.right
,t原来指向b,那么现在改成指向b的右节点,即b2这么一通下来后a的左节点没变依然是a1,右节点变成b,而a2已经和a断开了。相当于把b这课子树移到了a的右边。
同时l和t的指向改变了,l指向b,t指向b2
l = t;
看成:
l = l.right;
指针的移动,方便一次迭代.