Method: (DELETE-FROM-NODE BINARY-TREE-NODE T T)

Source

(defmethod delete-from-node ((node binary-tree-node) k tree)
  (with-slots (key left right value) node
    (cond ((comp-= k key)
	   (cond ((and (not left) (not right)) nil)
		 ((not left) right)
		 ((not right) left)
		 (t (apply-right-rotations
		     (adjust-height
		      (replace-with-min node tree))))))
	  ((comp-< k key)
	   (setf left (delete-from-node left k tree))
	   (apply-left-rotations (adjust-height node)))
	  (t (setf right (delete-from-node right k tree))
	     (apply-right-rotations (adjust-height node))))))
Source Context