tavl(3): import changes from plan 9 - plan9port - [fork] Plan 9 from user space | |
git clone git://src.adamsgaard.dk/plan9port | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit e63f0507e907041e62ccc81ee518ea5426a8fd2a | |
parent f5a8ea6fd8908c6f42670b8546239fdbc7fdbf03 | |
Author: David du Colombier <[email protected]> | |
Date: Thu, 2 Jun 2011 13:43:02 -0400 | |
avl(3): import changes from plan 9 | |
R=rsc | |
CC=plan9port.codebot | |
http://codereview.appspot.com/4536105 | |
Diffstat: | |
M man/man3/avl.3 | 27 +++++++++++++++++++++++++++ | |
1 file changed, 27 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/man/man3/avl.3 b/man/man3/avl.3 | |
t@@ -24,6 +24,7 @@ void deleteavl(Avltree *tree, Avl *key, Avl **oldp); | |
void endwalk(Avlwalk *walk); | |
void insertavl(Avltree *tree, Avl *new, Avl **oldp); | |
Avl *lookupavl(Avltree *tree, Avl *key); | |
+Avl *searchavl(Avltree *tree, Avl *key, int neighbor); | |
Avltree *mkavltree(int(*cmp)(Avl*, Avl*)); | |
.EE | |
.SH DESCRIPTION | |
t@@ -60,6 +61,32 @@ comparison function, | |
or | |
.B nil | |
if none. | |
+.PP | |
+.I Searchavl | |
+returns the | |
+.I tree | |
+node that matches | |
+.I key | |
+by | |
+.IR tree 's | |
+comparison function, if it exists. | |
+If it does not, and | |
+.I neighbor | |
+is positive, it returns the nearest node whose | |
+.I key | |
+is greater or | |
+.B nil | |
+if there is none and, if | |
+.I neighbor | |
+is negative, it returns the nearest node whose | |
+.I key | |
+is less or | |
+.B nil | |
+if there is none. | |
+It is an error to set | |
+.I neighbor | |
+to values other than \-1, 0, or +1. | |
+.PP | |
.I Deleteavl | |
removes the node matching | |
.I key |