changeset 82903:7224e10a56f5

Commentary and docstring munging; nfc.
author Thien-Thi Nguyen <ttn@gnuvola.org>
date Mon, 27 Aug 2007 03:09:15 +0000
parents c27b2ab395b6
children adbfe570fa23
files lisp/emacs-lisp/avl-tree.el
diffstat 1 files changed, 22 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/avl-tree.el	Mon Aug 27 02:49:40 2007 +0000
+++ b/lisp/emacs-lisp/avl-tree.el	Mon Aug 27 03:09:15 2007 +0000
@@ -28,19 +28,6 @@
 
 ;;; Commentary:
 
-;; This file combines elib-node.el and avltree.el from Elib.
-;;
-;; * Comments from elib-node.el
-;; A node is implemented as an array with three elements, using
-;; (elt node 0) as the left pointer
-;; (elt node 1) as the right pointer
-;; (elt node 2) as the data
-;;
-;; Some types of trees, e.g. AVL trees, need bigger nodes, but
-;; as long as the first three parts are the left pointer, the
-;; right pointer and the data field, these macros can be used.
-;;
-;; * Comments from avltree.el
 ;; An AVL tree is a nearly-perfect balanced binary tree.  A tree
 ;; consists of two cons cells, the first one holding the tag
 ;; 'AVL-TREE in the car cell, and the second one having the tree
@@ -51,6 +38,10 @@
 ;; sub-tree and one right sub-tree.  Each node also has a balance
 ;; count, which is the difference in depth of the left and right
 ;; sub-trees.
+;;
+;; The "public" functions (prefixed with "avl-tree") are:
+;;  -create, -p, -compare-function, -empty, -enter, -delete,
+;;  -member, -map, -first, -last, -copy, -flatten, -size, -clear.
 
 ;;; Code:
 
@@ -86,18 +77,18 @@
   `(aset ,node 2 ,newdata))
 
 (defmacro avl-tree-node-branch (node branch)
-  ;; Get value of a branch of a node.
-  ;;
-  ;; NODE is the node, and BRANCH is the branch.
-  ;; 0 for left pointer, 1 for right pointer and 2 for the data."
+  "Get value of a branch of a node.
+
+NODE is the node, and BRANCH is the branch.
+0 for left pointer, 1 for right pointer and 2 for the data.\""
   `(aref ,node ,branch))
 
 (defmacro avl-tree-node-set-branch (node branch newval)
-  ;; Set value of a branch of a node.
-  ;;
-  ;; NODE is the node, and BRANCH is the branch.
-  ;; 0 for left pointer, 1 for the right pointer and 2 for the data.
-  ;; NEWVAL is new value of the branch."
+  "Set value of a branch of a node.
+
+NODE is the node, and BRANCH is the branch.
+0 for left pointer, 1 for the right pointer and 2 for the data.
+NEWVAL is new value of the branch.\""
   `(aset ,node ,branch ,newval))
 
 (defmacro avl-tree-node-balance (node)
@@ -402,7 +393,7 @@
                 go-left nil))))))
 
 (defun avl-tree-do-copy (root)
-  ;; Copy the tree with ROOT as root.
+  ;; Copy the avl tree with ROOT as root.
   ;; Highly recursive. INTERNAL USE ONLY.
   (if (null root)
       nil
@@ -417,7 +408,7 @@
 ;;;       The public functions which operate on AVL trees.
 
 (defun avl-tree-create (compare-function)
-  "Create an empty avl tree.
+  "Create a new empty avl tree and return it.
 COMPARE-FUNCTION is a function which takes two arguments, A and B,
 and returns non-nil if A is less than B, and nil otherwise."
   (cons 'AVL-TREE
@@ -429,11 +420,11 @@
   (eq (car-safe obj) 'AVL-TREE))
 
 (defun avl-tree-compare-function (tree)
-  "Return the comparision function for the avl tree TREE."
+  "Return the comparison function for the avl tree TREE."
   (avl-tree-cmpfun tree))
 
 (defun avl-tree-empty (tree)
-  "Return t if TREE is emtpy, otherwise return nil."
+  "Return t if avl tree TREE is emtpy, otherwise return nil."
   (null (avl-tree-root tree)))
 
 (defun avl-tree-enter (tree data)
@@ -447,7 +438,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."
+Return the element in TREE which matched DATA,
+nil if no element matched."
   (avl-tree-do-delete (avl-tree-cmpfun tree)
                       (avl-tree-dummyroot tree)
                       0
@@ -455,8 +447,8 @@
 
 (defun avl-tree-member (tree data)
   "Return the element in the avl tree TREE which matches DATA.
-Matching uses the compare function previously specified in `avl-tree-create'
-when TREE was created.
+Matching uses the compare function previously specified in
+`avl-tree-create' when TREE was created.
 
 If there is no such element in the tree, the value is nil."
   (let ((node (avl-tree-root tree))
@@ -476,7 +468,7 @@
       nil)))
 
 (defun avl-tree-map (__map-function__ tree)
-  "Apply MAP-FUNCTION to all elements in the avl tree TREE."
+  "Apply __MAP-FUNCTION__ to all elements in the avl tree TREE."
   (avl-tree-mapc
    (function (lambda (node)
                (avl-tree-node-set-data