GLib Data Types

Memory Slices - efficient way to allocate groups of equal-sized chunks of memory
Memory Chunks - deprecated 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
Sequences - scalable lists
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 - deprecated way to allocate chunks of memory for GList, GSList and GNode