diff lisp/emacs-lisp/avl-tree.el @ 82899:f0fad697d0aa

Do s/elib-avl-/avl-tree-/g. Resulting changed macro and function names: avl-tree-root, avl-tree-dummyroot, avl-tree-cmpfun, avl-tree-del-balance1, avl-tree-do-del-internal, avl-tree-del-balance2, avl-tree-do-delete, avl-tree-enter-balance1, avl-tree-enter-balance2, avl-tree-do-enter, avl-tree-mapc, avl-tree-do-copy.
author Thien-Thi Nguyen <ttn@gnuvola.org>
date Mon, 27 Aug 2007 02:22:57 +0000
parents e26bae3c1724
children 0ff5cfe89663
line wrap: on
line diff
--- a/lisp/emacs-lisp/avl-tree.el	Mon Aug 27 02:11:12 2007 +0000
+++ b/lisp/emacs-lisp/avl-tree.el	Mon Aug 27 02:22:57 2007 +0000
@@ -112,26 +112,22 @@
 ;;; ================================================================
 ;;;       Internal functions for use in the AVL tree package
 
-;;;
-;;; The functions and macros in this section all start with `elib-avl-'.
-;;;
-
-(defmacro elib-avl-root (tree)
+(defmacro avl-tree-root (tree)
   ;; Return the root node for an avl-tree.  INTERNAL USE ONLY.
   `(elib-node-left (car (cdr ,tree))))
 
-(defmacro elib-avl-dummyroot (tree)
+(defmacro avl-tree-dummyroot (tree)
   ;; Return the dummy node of an avl-tree.  INTERNAL USE ONLY.
   `(car (cdr ,tree)))
 
-(defmacro elib-avl-cmpfun (tree)
+(defmacro avl-tree-cmpfun (tree)
   ;; Return the compare function of AVL tree TREE.  INTERNAL USE ONLY.
   `(cdr (cdr ,tree)))
 
 ;; ----------------------------------------------------------------
 ;;                          Deleting data
 
-(defun elib-avl-del-balance1 (node branch)
+(defun avl-tree-del-balance1 (node branch)
   ;; Rebalance a tree and return t if the height of the tree has shrunk.
   (let* ((br (elib-node-branch node branch))
          p1
@@ -185,7 +181,7 @@
         (avl-tree-node-set-balance p2 0)
         t)))))
 
-(defun elib-avl-del-balance2 (node branch)
+(defun avl-tree-del-balance2 (node branch)
   (let* ((br (elib-node-branch node branch))
          p1
          b1
@@ -238,18 +234,18 @@
         (avl-tree-node-set-balance p2 0)
         t)))))
 
-(defun elib-avl-do-del-internal (node branch q)
+(defun avl-tree-do-del-internal (node branch q)
 
   (let* ((br (elib-node-branch node branch)))
     (if (elib-node-right br)
-        (if (elib-avl-do-del-internal br +1 q)
-            (elib-avl-del-balance2 node branch))
+        (if (avl-tree-do-del-internal br +1 q)
+            (avl-tree-del-balance2 node branch))
       (elib-node-set-data q (elib-node-data br))
       (elib-node-set-branch node branch
                             (elib-node-left br))
       t)))
 
-(defun elib-avl-do-delete (cmpfun root branch data)
+(defun avl-tree-do-delete (cmpfun root branch data)
   ;; Return t if the height of the tree has shrunk.
   (let* ((br (elib-node-branch root branch)))
     (cond
@@ -257,12 +253,12 @@
       nil)
 
      ((funcall cmpfun data (elib-node-data br))
-      (if (elib-avl-do-delete cmpfun br 0 data)
-          (elib-avl-del-balance1 root branch)))
+      (if (avl-tree-do-delete cmpfun br 0 data)
+          (avl-tree-del-balance1 root branch)))
 
      ((funcall cmpfun (elib-node-data br) data)
-      (if (elib-avl-do-delete cmpfun br 1 data)
-          (elib-avl-del-balance2 root branch)))
+      (if (avl-tree-do-delete cmpfun br 1 data)
+          (avl-tree-del-balance2 root branch)))
 
      (t
       ;; Found it.  Let's delete it.
@@ -276,13 +272,13 @@
         t)
 
        (t
-        (if (elib-avl-do-del-internal br 0 br)
-            (elib-avl-del-balance1 root branch))))))))
+        (if (avl-tree-do-del-internal br 0 br)
+            (avl-tree-del-balance1 root branch))))))))
 
 ;; ----------------------------------------------------------------
 ;;                           Entering data
 
-(defun elib-avl-enter-balance1 (node branch)
+(defun avl-tree-enter-balance1 (node branch)
   ;; Rebalance a tree and return t if the height of the tree has grown.
   (let* ((br (elib-node-branch node branch))
          p1
@@ -326,7 +322,7 @@
       (avl-tree-node-set-balance (elib-node-branch node branch) 0)
       nil))))
 
-(defun elib-avl-enter-balance2 (node branch)
+(defun avl-tree-enter-balance2 (node branch)
   ;; Return t if the tree has grown.
   (let* ((br (elib-node-branch node branch))
          p1
@@ -369,7 +365,7 @@
       (avl-tree-node-set-balance (elib-node-branch node branch) 0)
       nil))))
 
-(defun elib-avl-do-enter (cmpfun root branch data)
+(defun avl-tree-do-enter (cmpfun root branch data)
   ;; Return t if height of tree ROOT has grown.  INTERNAL USE ONLY.
   (let ((br (elib-node-branch root branch)))
     (cond
@@ -380,16 +376,16 @@
       t)
 
      ((funcall cmpfun data (elib-node-data br))
-      (and (elib-avl-do-enter cmpfun
+      (and (avl-tree-do-enter cmpfun
                               br
                               0 data)
-           (elib-avl-enter-balance2 root branch)))
+           (avl-tree-enter-balance2 root branch)))
 
      ((funcall cmpfun (elib-node-data br) data)
-      (and (elib-avl-do-enter cmpfun
+      (and (avl-tree-do-enter cmpfun
                               br
                               1 data)
-           (elib-avl-enter-balance1 root branch)))
+           (avl-tree-enter-balance1 root branch)))
 
      (t
       (elib-node-set-data br data)
@@ -397,7 +393,7 @@
 
 ;; ----------------------------------------------------------------
 
-(defun elib-avl-mapc (map-function root)
+(defun avl-tree-mapc (map-function root)
   ;; Apply MAP-FUNCTION to all nodes in the tree starting with ROOT.
   ;; The function is applied in-order.
   ;;
@@ -423,13 +419,13 @@
           (setq node (pop stack)
                 go-left nil))))))
 
-(defun elib-avl-do-copy (root)
+(defun avl-tree-do-copy (root)
   ;; Copy the tree with ROOT as root.
   ;; Highly recursive. INTERNAL USE ONLY.
   (if (null root)
       nil
-    (avl-tree-node-create (elib-avl-do-copy (elib-node-left root))
-                          (elib-avl-do-copy (elib-node-right root))
+    (avl-tree-node-create (avl-tree-do-copy (elib-node-left root))
+                          (avl-tree-do-copy (elib-node-right root))
                           (elib-node-data root)
                           (avl-tree-node-balance root))))
 
@@ -451,17 +447,17 @@
 
 (defun avl-tree-compare-function (tree)
   "Return the comparision function for the avl tree TREE."
-  (elib-avl-cmpfun tree))
+  (avl-tree-cmpfun tree))
 
 (defun avl-tree-empty (tree)
   "Return t if TREE is emtpy, otherwise return nil."
-  (null (elib-avl-root tree)))
+  (null (avl-tree-root tree)))
 
 (defun avl-tree-enter (tree data)
   "In the avl tree TREE insert DATA.
 Return DATA."
-  (elib-avl-do-enter (elib-avl-cmpfun tree)
-                     (elib-avl-dummyroot tree)
+  (avl-tree-do-enter (avl-tree-cmpfun tree)
+                     (avl-tree-dummyroot tree)
                      0
                      data)
   data)
@@ -469,8 +465,8 @@
 (defun avl-tree-delete (tree data)
   "From the avl tree TREE, delete DATA.
 Return the element in TREE which matched DATA, nil if no element matched."
-  (elib-avl-do-delete (elib-avl-cmpfun tree)
-                      (elib-avl-dummyroot tree)
+  (avl-tree-do-delete (avl-tree-cmpfun tree)
+                      (avl-tree-dummyroot tree)
                       0
                       data))
 
@@ -480,8 +476,8 @@
 when TREE was created.
 
 If there is no such element in the tree, the value is nil."
-  (let ((node (elib-avl-root tree))
-        (compare-function (elib-avl-cmpfun tree))
+  (let ((node (avl-tree-root tree))
+        (compare-function (avl-tree-cmpfun tree))
         found)
     (while (and node
                 (not found))
@@ -499,16 +495,16 @@
 
 (defun avl-tree-map (__map-function__ tree)
   "Apply MAP-FUNCTION to all elements in the avl tree TREE."
-  (elib-avl-mapc
+  (avl-tree-mapc
    (function (lambda (node)
                (elib-node-set-data node
                                    (funcall __map-function__
                                             (elib-node-data node)))))
-   (elib-avl-root tree)))
+   (avl-tree-root tree)))
 
 (defun avl-tree-first (tree)
   "Return the first element in TREE, or nil if TREE is empty."
-  (let ((node (elib-avl-root tree)))
+  (let ((node (avl-tree-root tree)))
     (if node
         (progn
           (while (elib-node-left node)
@@ -518,7 +514,7 @@
 
 (defun avl-tree-last (tree)
   "Return the last element in TREE, or nil if TREE is empty."
-  (let ((node (elib-avl-root tree)))
+  (let ((node (avl-tree-root tree)))
     (if node
         (progn
           (while (elib-node-right node)
@@ -529,33 +525,33 @@
 (defun avl-tree-copy (tree)
   "Return a copy of the avl tree TREE."
   (let ((new-tree (avl-tree-create
-                   (elib-avl-cmpfun tree))))
-    (elib-node-set-left (elib-avl-dummyroot new-tree)
-                        (elib-avl-do-copy (elib-avl-root tree)))
+                   (avl-tree-cmpfun tree))))
+    (elib-node-set-left (avl-tree-dummyroot new-tree)
+                        (avl-tree-do-copy (avl-tree-root tree)))
     new-tree))
 
 (defun avl-tree-flatten (tree)
   "Return a sorted list containing all elements of TREE."
   (nreverse
    (let ((treelist nil))
-     (elib-avl-mapc (function (lambda (node)
+     (avl-tree-mapc (function (lambda (node)
                                 (setq treelist (cons (elib-node-data node)
                                                      treelist))))
-                    (elib-avl-root tree))
+                    (avl-tree-root tree))
      treelist)))
 
 (defun avl-tree-size (tree)
   "Return the number of elements in TREE."
   (let ((treesize 0))
-    (elib-avl-mapc (function (lambda (data)
+    (avl-tree-mapc (function (lambda (data)
                                (setq treesize (1+ treesize))
                                data))
-                   (elib-avl-root tree))
+                   (avl-tree-root tree))
     treesize))
 
 (defun avl-tree-clear (tree)
   "Clear the avl tree TREE."
-  (elib-node-set-left (elib-avl-dummyroot tree) nil))
+  (elib-node-set-left (avl-tree-dummyroot tree) nil))
 
 (provide 'avl-tree)