summaryrefslogtreecommitdiffstats
path: root/avl-1.4.0/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'avl-1.4.0/TODO')
-rw-r--r--avl-1.4.0/TODO92
1 files changed, 92 insertions, 0 deletions
diff --git a/avl-1.4.0/TODO b/avl-1.4.0/TODO
new file mode 100644
index 0000000..0231395
--- /dev/null
+++ b/avl-1.4.0/TODO
@@ -0,0 +1,92 @@
+TODO
+----
+
+* Write `bare' no-rebalancing version for comparison purposes.
+
+* In avl_delete's D9 it may be faster to move the data instead of
+ moving around all the pointers. Consider the situation carefully.
+
+* avl_traverse_{fwd,rev}; avl_find_traverse
+
+* Generalized testing framework; for instance, could compare with
+ kazlib and avllib implementations.
+
+* Merge algorithm paper into documentation.
+
+----------------------------------------------------------------------
+From: Akim Demaille <demaille@inf.enst.fr>
+Subject: Re: libavl
+To: pfaffben@pilot.msu.edu
+Date: 25 Sep 1998 16:04:03 +0200
+
+
+Sorry for the delays...
+
+Ben Pfaff <pfaffben@pilot.msu.edu> writes:
+
+> Akim Demaille <demaille@inf.enst.fr> writes:
+>
+> And finaly, for the application I want to make of libavl, I have
+> sometimes to merge two avls, say the second into the first, while
+> specifying, when conflict, whether it is always the first or the
+> second that wins.
+>
+> I can easily make this using your api, nevertheless, I wanted to ask
+> you whether you know none brute-force approaches, or even whether
+> this kind of features might appear in the future.
+>
+> Knuth describes an elegant algorithm for merging two avls, but it only
+> works if all the values in one of them is smaller than all the values
+> in the other.
+>
+> If you do think of a clever algorithm for doing this, please let me
+> know and I'll incorporate it into the API.
+
+I know none. but looking on the web, I found one in haskell :)
+I didn't look whether it was smart or not.
+
+http://www.cs.chalmers.se/pub/haskell/library/avl-tree.lgs
+
+There is not much material. I think comp.compiler is a good place to
+ask for an algorithm...
+
+Akim
+----------------------------------------------------------------------
+From: David Kastrup <dak@neuroinformatik.ruhr-uni-bochum.de>
+Subject: Re: Your AVL tree page
+To: pfaffben@pilot.msu.edu
+Date: Mon, 23 Nov 1998 18:38:55 +0100
+
+ From: Ben Pfaff <pfaffben@pilot.msu.edu>
+ Date: 23 Nov 1998 12:12:31 -0500
+
+ David Kastrup <dak@neuroinformatik.ruhr-uni-bochum.de> writes:
+
+ You might want to take a look at the texts at
+ http://www-lsi.upc.es/www/dept/techreps/1998.html
+
+ In particular the paper
+ http://www-lsi.upc.es/dept/techreps/ps/R98-12.ps.gz
+
+ might be interesting, as it gives an AVL-tree mechanism for
+ multi-threaded, distributed access.
+
+ Thanks for the pointers. It seems that connectivity to that machine
+ is really slow from here, at least right now, so I'll try to take a
+ look at them a little later. Currently there is no multithread
+ support in libavl, but it might be nice to add it later.
+
+Well, the reference will probably not be what you think it is. It is
+intended to not properly balance the tree during the access when that
+would mean locking the entire tree. Instead, it does only local
+corrections that eventually probagate to the top. One can also let a
+"garbage collect" thread run that will optimize the data structures
+at idle times, but will let them deteriorate a bit rather than fix
+them up properly under stress. This is, of course, especially
+interesting for internal data structures of an operating system, where
+full balancing at the time of access will slow operations down, but
+there will be idle times when balancing can occur without overhead.
+
+David Kastrup Phone: +49-234-700-5570
+Email: dak@neuroinformatik.ruhr-uni-bochum.de Fax: +49-234-709-4209
+Institut für Neuroinformatik, Universitätsstr. 150, 44780 Bochum, Germany