RumAVL is a C implementation of a Threaded AVL Tree. An AVL Tree is a self- balancing binary search tree, as described by Adelson-Velskii and Landis. Threading is a method of linking the unused links of leaves to the next node in sequence, making traversing the tree easier.
RumAVL provides a opaque sorting and/or storage layer, hiding you from the details of maintaining an AVL tree, while giving you considerable control most operations.
RumAVL is a dictionary data type, providing indexed insertion and lookup, based on a key. RumAVL library supports values and keys of any type.
Here are some key features of "RumAVL":
· Can hold keys and data of any type, and any size
· Unlimited amount of nodes and unlimited tree height
· ANSI C/C99 compatible. Compiles cleanly under "gcc -W -Wall -pedantic"
· Portable - used no platform specific calls
· User defined memory handling functions
· User defined callback functions or "hooks" before any delete or overwrite operations
· Safe and reliable tree traversing
What's New in This Release:
· 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.