dcollections 0.01 release
Robert Fraser
fraserofthenight at gmail.com
Wed May 7 18:13:20 PDT 2008
Some guy wrote:
> Steven Schveighoffer Wrote:
>
>> I've been tinkering with a collection package that is a hybrid between C++,
>> Java, and Tango, utilizing the best D features (such as slicing, foreach,
>> etc.).
>>
>> The result is dcollections. Here is a list of the features:
>>
>> * Hash, RBTree, Link, and Array implementations for appropriate
>> containers.
>> * List, Set, Map, and Multiset containers provided.
>> * Able to swap out underlying implementation of a container, or
>> customize implementation.
>> * Minimized heap activity. All cursors are struct-based.
>> * Should be compatible with both Tango and Phobos (tested with Tango).
>> * Slicing where appropriate (currently only ArrayList, but will add to
>> other containers).
>> * Removal while traversing.
>> * Removal of elements does not invalidate cursors where possible.
>> * Cursors can be kept for later use (such as O(1) removal if supported
>> by the container).
>> * Interfaces for implementation-independent code.
>> * Concatenation and appending for lists.
>> * dup functions.
>> * Set/Map intersection.
>> * Handy filter, transform, and chain iterators.
>>
>> There's a lot left to be done, especially on the documentation and testing
>> side, so don't expect everything to be properly documented or actually work
>> :) But I think it's at a point where it can be useful.
>>
>> Enjoy!
>>
>> http://www.dsource.org/projects/dcollections
>>
>> -Steve
>>
>>
>
> Just wondering why people (especially from the U.S.) always build red-black trees instead of AVL trees ( http://en.wikipedia.org/wiki/Avl_tree ) which are faster, simpler to understand, simpler to implement and support the same set of operations?
Well, according to my data structures prof...
- For data inserted perfectly randomly, plain BSTs work best
- For data inserted mostly randomly but with occasional ordering,
red-black trees work best. This is why Java's collection framework uses
them, since for unknown user data they're probably the best choice
- For data inserted in a mostly-ordered fashion, AVL trees work best
- For data retrieved in an ordered or clumped fashion, Splay trees are best
- For data that won't fit entirely in memory, B+trees are best (but
that's sort of a special niche)
More information about the Digitalmars-d-announce
mailing list