csharptest / CSharpTest.Net.Collections

BPlusTree and other collections moved from http://code.google.com/p/csharptest-net
108 stars 48 forks source link

Reverse Iteration #3

Open VJalili opened 10 years ago

VJalili commented 10 years ago

Hi, I should say: BPlusTree has lots of quite utile features specially for iterations. Features such as: tree.EnumerateFrom, tree.EnumerateRange, or tree.GetEnumerator(). Leveraging on these functions most of common operations are supported out-of-box, however I was wondering if there is any possibility to do reverse iteration. For example a variation of tree.EnumerateFrom which starts iterating from given key toward BEGINNING of tree rather END. Maybe this aspect is covered, in that case I would appreciate if you could explain it. Otherwise, would you mind please guide me through ?

Reverse iteration is indeed useful when trying to perform some operations on key's surrounding the given key.

csharptest commented 10 years ago

Correct, reverse iteration is currently not supported. It would be possible to implement a copy of BPlusTree.Enumerator that would iterate the nodes in reverse. As of yet, I have not implemented this. I'll leave this open as an enhancement request.

Feel free to implement this, and all the required unit tests, and send a push request.