- Table of Contents
- Memory Chunks -- efficient way to allocate groups of equal-sized chunks of memory.
- Doubly-Linked Lists -- linked lists containing integer values or pointers to data, with the ability
to iterate over the list in both directions.
- Singly-Linked Lists -- linked lists containing integer values or pointers to data, limited to
iterating over the list in one direction.
- Double-ended Queues -- double-ended queue data structure.
- Trash Stacks -- maintain a stack of unused allocated memory chunks.
- Hash Tables -- associations between keys and values so that given a key the value
can be found quickly.
- Strings -- text buffers which grow automatically as text is added.
- String Chunks -- efficient storage of groups of strings.
- Arrays -- arrays of arbitrary elements which grow automatically as elements are added.
- Pointer Arrays -- arrays of pointers to any type of data, which grow automatically as new
elements are added.
- Byte Arrays -- arrays of bytes, which grow automatically as elements are added.
- Balanced Binary Trees -- a sorted collection of key/value pairs optimized for searching
and traversing in order.
- N-ary Trees -- trees of data with any number of branches.
- Quarks -- a 2-way association between a string and a unique integer identifier.
- Keyed Data Lists -- lists of data elements which are accessible by a string or GQuark identifier.
- Datasets -- associate groups of data elements with particular memory locations.
- Relations and Tuples -- tables of data which can be indexed on any number of fields.
- Caches -- caches allow sharing of complex data structures to save resources.
- Memory Allocators -- allocates chunks of memory for GList, GSList and GNode.