* lisp/emacs-lisp/avl-tree.el: New avl-tree-stack datatype. Add new
commiteb95d01d15ed25ed7e27ee4d1b883588c58ce306
authorToby Cubitt <toby-predictive@dr-qubit.org>
Fri, 27 May 2011 22:58:29 +0000 (27 19:58 -0300)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 27 May 2011 22:58:29 +0000 (27 19:58 -0300)
treecbe322b2633ef81c26549854a60f6a04e66bc763
parent3769ddcf1eeb85bb3f408d90a8bb44f383620882
* lisp/emacs-lisp/avl-tree.el: New avl-tree-stack datatype.  Add new
traversal functions for avl-trees.
(avl-tree--stack): New struct.
(avl-tree-stack-p, avl-tree--stack-repopulate): New funs.
(avl-tree-enter): Add optional `updatefun' arg.
(avl-tree--do-enter): Add optional `updatefun' arg.  Change return value.
(avl-tree-delete): Add optional `test' and `nilflag' args.
(avl-tree--do-delete): Add `test' and `nilflag' args.  Change return value.
(avl-tree-member): Add optional `nilflag'
(avl-tree-member-p): New function.
(avl-tree-mapc, avl-tree-mapf, avl-tree-mapcar): New functions.
(avl-tree-stack, avl-tree-stack-pop, avl-tree-stack-first)
(avl-tree-stack-empty-p): New functions.
lisp/ChangeLog
lisp/emacs-lisp/avl-tree.el