SA
Size: a a a
SA
YK
SA
a
SA
SA
(defun rotate-right (node tree)
"Rotates right at the node; resetes the tree root if needed"
(with-snames
(with-slots (parent left right) node
(let ((new left))
(setf left new.right)
(when new.right
(setf new.right.parent node))
(setf new.parent parent)
(cond ((not parent)
(setf tree.root new))
((eq node parent.right)
(setf parent.right new))
(t (setf parent.left new)))
(setf new.right node
parent new)))))
SA
SA
(when new.right
(setf new.right.parent node))
SA
SA
a
(defun rotate-right (node tree)
"Rotates right at the node; resetes the tree root if needed"
(with-snames
(with-slots (parent left right) node
(let ((new left))
(setf left new.right)
(when new.right
(setf new.right.parent node))
(setf new.parent parent)
(cond ((not parent)
(setf tree.root new))
((eq node parent.right)
(setf parent.right new))
(t (setf parent.left new)))
(setf new.right node
parent new)))))
a
(when new.right
(setf new.right.parent node))
(when new.right
(setf new.right.parent node))
(swhen (right new)
(setf (parent it) node))
it
, например, с этими точками будет правильно работать?SA
SA
SA
SA
SA
SA
a