Author: abaine Date: Wed Jun 20 12:27:20 2007 New Revision: 28
Modified: trunk/funds/src/trees/avl-tree.lisp Log: Changed avl-insert signature to accept keyword arguments test and order
Modified: trunk/funds/src/trees/avl-tree.lisp ============================================================================== --- trunk/funds/src/trees/avl-tree.lisp (original) +++ trunk/funds/src/trees/avl-tree.lisp Wed Jun 20 12:27:20 2007 @@ -17,13 +17,19 @@ t if it is empty; nil else." (null tree))
-(defun avl-insert (tree key value) +(defun avl-insert (tree key value &key (test #'eql) (order #'<)) (cond ((avl-empty-p tree) (make-avl :ht 1 :key key :value value - :left nil - :right nil)) - ((< key (avl-key tree)) (left-insert tree key value)) + :left (empty-avl-tree) + :right (empty-avl-tree))) + + ((funcall test key (avl-key tree)) (make-avl :ht (avl-ht tree) + :key key + :value value + :left (avl-left tree) + :right (avl-right tree))) + ((funcall order key (avl-key tree)) (left-insert tree key value)) (t (right-insert tree key value))))
(defun left-insert (tree key value)