RumAVL is an ANSI/C99 compliant implementation of a Threaded AVL tree, providing an efficient ordered dictionary sorting and searching mechanism. It is ideal for use as a base of other complex data types.
| Tags | Software Development Libraries |
|---|---|
| Licenses | MIT/X |
| Operating Systems | OS Independent |
| Implementation | C |
Recent releases


Changes: This release adds more useful parameters to callback functions, and changes the way setting of memory management and callback functions work. It adds a new example library.


Changes: The efficiency of delete operations on nodes that have children on both sides was improved by replacing the node to be deleted by its innermost child in the heavier subtree. This is opposed to the previous method of rotating the node to be deleted until it was a (semi) leaf.


Changes: A bugfix in the balance recalculations after rotation in very unbalanced trees. This bug would cause nodes to have an incorrect balance factor, eventually resulting in an unbalanced tree and/or a possible endless loop during rebalancing after an insert or delete operation.


Changes: This is a partial rewrite of RumAVL, removing compulsory dictionary behaviour and allowing you to define your own mapping (if mapping is needed). Buggy traversal code has been removed; it did not work where a record was a pointer (or other reference) to a real record, and the current node was deleted. Documentation has been rewritten.


No changes have been submitted for this release.